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(...) { }