2017-08-03 128 views
2

我在这里如何注册Unity3D中的事件ARToolKit 6 for OnMarkerFound?

https://github.com/artoolkit/ar6unity-wiki/wiki/Setting-Up-Your-First-ARToolKit-for-Unity-Scene

我需要使其触发OnMarkerFound从标记事件注册下面这个教程。下面的文章是过时

OnMarkerFound event not getting called - Unity3D ARToolKit

https://archive.artoolkit.org/documentation/doku.php?id=6_Unity:unity_scripts

我读AAREventReceiver.cs文件,它说的东西很模糊:

using UnityEngine; 

/// <summary> 
/// Any object that implements IAREventReceiver is eligable to register for tracking 
/// events from any ARTrackable object. 
/// To register with an ARTrackable: 
/// arTrackedMarker.eventReceivers.add(this); 
/// </summary> 
/// 
public abstract class AAREventReceiver : MonoBehaviour { 
    public abstract void OnMarkerFound(ARTrackable marker); 
    public abstract void OnMarkerTracked(ARTrackable marker); 
    public abstract void OnMarkerLost(ARTrackable marker); 
} 

例如,我找不到任何地方IAREventReceiver。另外我在哪里可以放arTrackedMarker.eventReceivers.add(this);

然后我看着我的AR Trackable对象注册事件接收器。资产列表显示none,尽管我有很多可用于注册事件的GameObjects。

enter image description here

坦率地说,我不知道如何在V6这里注册事件。即使这个文档是不准确的

https://archive.artoolkit.org/documentation/doku.php?id=6_Unity:unity_scripts

能否请你指出我吗?谢谢。

回答

0

AAREventReceiver.cs里面的文档是错误的。它应该说:

“实现一个 AREventReceiver任何对象符合(...)”

说了这么多。你需要编写自己的脚本包含这些功能的实现:

public abstract void OnMarkerFound(ARTrackable marker); 
public abstract void OnMarkerTracked(ARTrackable marker); 
public abstract void OnMarkerLost(ARTrackable marker); 

,并使其延长 AAREventReceiver:

public class MyEventReceiver : AAREventReceiver { 
    public abstract void OnMarkerFound(ARTrackable marker){ 
     //log OnMarkerFound 
    } 
    public abstract void OnMarkerTracked(ARTrackable marker){ 
     //log OnMarkerTracked 
    } 
    public abstract void OnMarkerLost(ARTrackable marker){ 
     //log OnMarkerLost 
    } 
} 

然后你可以选择在EventReceivers名录为“元素0的MyEventReceiver '(指您的屏幕截图)

我在这里写了一篇文章:http://augmentmy.world/migratetoartoolkit6 关于如何从ARToolKit5迁移到ARToolKit6

希望帮助

===编辑1:===

你不需要这个

arTrackedMarker.eventReceivers.add(this); 

了与ARToolKit6