C# 函数覆盖
C# function override
我使用 vuforia sdk 来跟踪二维标记。现在我可以处理标记检测和丢失了。 Vuforia sdk 有一个 .cs 文件。内容:
namespace Vuforia
{
public class DefaultTrackableEventHandler : MonoBehaviour,
ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
void Start()
{ ... }
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
....
}
}
}
我尝试覆盖 OnTrackableStateChanged
函数。所以我创建了一个新的 .cs 文件。
public class ImageTargetScript : DefaultTrackableEventHandler {
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
Debug.Log("**OVERRIDE FUNCTION**");
}
}
我将新的 .cs 文件拖到游戏对象中。当我 运行 统一此代码时,我看不到输出文本 "OVERRIDE FUNCTION".
我有什么错?我如何覆盖此功能?
.
你在基础 class 中的 OnTrackableStateChanged
应该被标记为 virtual
,所以它可以被覆盖(现在它不能,你应该在你的IDE)。 override 方法中应包含 override
关键字:
public virtual void OnTrackableStateChanged(...) { }
public override void OnTrackableStateChanged(...) { }
我使用 vuforia sdk 来跟踪二维标记。现在我可以处理标记检测和丢失了。 Vuforia sdk 有一个 .cs 文件。内容:
namespace Vuforia
{
public class DefaultTrackableEventHandler : MonoBehaviour,
ITrackableEventHandler
{
private TrackableBehaviour mTrackableBehaviour;
void Start()
{ ... }
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
....
}
}
}
我尝试覆盖 OnTrackableStateChanged
函数。所以我创建了一个新的 .cs 文件。
public class ImageTargetScript : DefaultTrackableEventHandler {
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
Debug.Log("**OVERRIDE FUNCTION**");
}
}
我将新的 .cs 文件拖到游戏对象中。当我 运行 统一此代码时,我看不到输出文本 "OVERRIDE FUNCTION".
我有什么错?我如何覆盖此功能?
.
你在基础 class 中的 OnTrackableStateChanged
应该被标记为 virtual
,所以它可以被覆盖(现在它不能,你应该在你的IDE)。 override 方法中应包含 override
关键字:
public virtual void OnTrackableStateChanged(...) { }
public override void OnTrackableStateChanged(...) { }