C# 未调用OnMarkerFound事件-Unity3D ARToolKit

C# 未调用OnMarkerFound事件-Unity3D ARToolKit,c#,unity3d,artoolkit,C#,Unity3d,Artoolkit,我正在尝试在Unity3D上使用ARToolKit SDK实现一些自定义行为。 根据文档,ARCamera使用BroadcastMessage系统调用OnMarkerFound(ARMarker marker)和OnMarkerLost(ARMarker marker)来通知何时发现或丢失标记。 但是,我根本无法启动这些函数。我已经看完了整个源代码,添加了调试手表,作品。。。但这两个事件没有触发。 我的脚本如下所示: using UnityEngine; using System.Collect

我正在尝试在Unity3D上使用ARToolKit SDK实现一些自定义行为。
根据文档,
ARCamera
使用
BroadcastMessage
系统调用
OnMarkerFound(ARMarker marker)
OnMarkerLost(ARMarker marker)
来通知何时发现或丢失标记。
但是,我根本无法启动这些函数。我已经看完了整个源代码,添加了调试手表,作品。。。但这两个事件没有触发。
我的脚本如下所示:

using UnityEngine;
using System.Collections;

public class CustomTrack : MonoBehaviour {
    void OnMarkerFound(ARMarker marker){
        Debug.Log("MARKER FOUND! WHEEEE!");
    }

    void OnMarkerLost(ARMarker marker){
        Debug.Log("MARKER LOST! WHEEEE!");
    }

    void OnMarkerTracked(ARMarker marker){
         Debug.Log("MARKER TRACKED! WHEEEE!");
    }
}
我在论坛上看到其他几个人等都面临着类似的问题,所以最终能找到解决这个问题的办法会很好


编辑-回答
为了解释我是如何做到这一点的,按照@blater所说的,我将
GameObject
添加到
artracketobject
中,然后将我的
CustomScript
添加到
GameObject
中。我犯的一个错误是将
CustomScript
附加到
ARMarkerScene
。所以,这起作用了。我希望这对其他人也有用。

文档有点过时,因为用于Unity v5.2的ARToolKit事件是由ArtrackDobject组件生成的。要接收事件的对象必须连接到ArtRackDobject上的“事件接收器”,这在编辑器中公开:


由于使用了BroadcastMessage,事件接收者和所有子对象都将收到消息,因此如果您需要调用多个游戏对象,请将它们放入一个组中,并将父对象作为事件接收者。

文档有点过时,自Unity v5.2的ARToolKit以来,这些事件都是由ArtracketObject组件生成的。要接收事件的对象必须连接到ArtRackDobject上的“事件接收器”,这在编辑器中公开:


由于使用了BroadcastMessage,事件接收者和任何子对象都会收到消息,因此如果您需要调用多个游戏对象,请将它们放入一个组中,并将父对象作为事件接收者。

我承认文档有点混乱。它说保存脚本的对象应该是AROrigin游戏对象的子对象。你有吗?您还应该设置一些标记。该文档似乎很旧,因为它使用了一些不推荐使用的方法。可能已经过时了。@fafase我做得对。我的程序正常工作,所以没问题。我只想添加一些自定义功能。问题是没有调用事件,但现在你说你得到了它,但需要一些自定义。你能把这个问题重新表述一下吗?我有点迷路了。@fafase我的意思是,除非调用这些事件,否则当检测到标记时,我无法执行任何自定义操作。我承认文档有点混乱。它说保存脚本的对象应该是AROrigin游戏对象的子对象。你有吗?您还应该设置一些标记。该文档似乎很旧,因为它使用了一些不推荐使用的方法。可能已经过时了。@fafase我做得对。我的程序正常工作,所以没问题。我只想添加一些自定义功能。问题是没有调用事件,但现在你说你得到了它,但需要一些自定义。你能把这个问题重新表述一下吗?我有点迷路了。@fafase我的意思是,除非调用这些事件,否则当检测到标记时,我无法执行任何自定义操作。非常感谢您的回复。我已经等了很久了。我试试你说的。但我想知道的是这到底是怎么回事?一旦我将一个对象附加到接收器上,该对象的函数将被调用?在这种情况下,我的函数脚本将去哪里?我应该将其附加到问题中的游戏对象上吗?将其附加到您想要接收事件的任何对象上,即使是一个空的游戏对象。2017年4月底,文档仍然过期。p、 谢谢你的回复。我已经等了很久了。我试试你说的。但我想知道的是这到底是怎么回事?一旦我将一个对象附加到接收器上,该对象的函数将被调用?在这种情况下,我的函数脚本将去哪里?我应该将其附加到问题中的游戏对象上吗?将其附加到您想要接收事件的任何对象上,即使是一个空的游戏对象。2017年4月底,文档仍然过期。p、 谢谢你发这个帖子