0

Unity3D で ARToolKit SDK を使用してカスタム動作を実装しようとしています。こちら
のドキュメントによると、はシステムを使用して、マーカーが見つかった場合や失われた場合に呼び出して通知します。 ただし、これらの関数をまったく起動させることはできません。ソース コード全体を確認し、デバッグ ウォッチを追加して動作を確認しましたが、これら 2 つのイベントが発生しません。 私のスクリプトは次のようになります。ARCameraBroadcastMessageOnMarkerFound(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!");
    }
}

フォーラムなどで他の人が同様の問題に直面しているのを見たので、最終的にこの問題の解決策が得られれば幸いです.


編集 - 回答

これを機能させるために私が何をしたかを説明するために、@bleaterが言ったことに従って、 を に追加しGameObjectARTrackedObject次に を に追加CustomScriptしましたGameObject。私が犯していた 1 つの間違いは、 を に取り付けたCustomScriptことARMarkerSceneです。それで、それはうまくいきました。これが他の人にも役立つことを願っています。

4

1 に答える 1

2

ARToolKit for Unity v5.2 以降、これらのイベントは ARTrackedObject コンポーネントによって生成されるため、ドキュメントは少し古くなっています。イベントを受信するオブジェクトは、ARTrackedObject の「イベント レシーバー」に接続する必要があります。これはエディターで公開されます。

ARTrackedObject の Unity エディター パネル

BroadcastMessage が使用されているため、イベント レシーバーとすべての子オブジェクトがメッセージを受信するため、複数の GameObject を呼び出す必要がある場合は、それらをグループに入れ、親オブジェクトをイベント レシーバーにします。

于 2016-02-11T22:34:02.477 に答える