0

我正在使用 Kudan 创建一个应用程序,其中通过无标记跟踪显示照片(2D 精灵)。基于示例项目,我成功地进行了调整,使 2D 平面始终垂直于相机并放置在屏幕上我想要的位置。真的很棒!

但我无法弄清楚如何通过脚本重新启动/重置跟踪。我总是可以通过遮挡摄像头或摇晃手机来强制重新启动跟踪,但我想通过一个按钮来完成——这与我在 Android 和 iOS 的“ArbiTrack Basics”指南中描述的行为完全相同,但我无法在 Unity 中重现它。我应该向哪个脚本发送停止跟踪命令以使跟踪实例重新启动(与在无标记模式下运行示例 Unity 项目之一时阻止相机的效果完全相同)。

此处描述了 Android 编码的情况:https ://wiki.kudan.eu/ArbiTrack_Basics#Stopping_ArbiTrack

它说要调用这三件事:

// 停止 ArbiTrack arbiTrack.stop();

// 显示目标节点 arbiTrack.getTargetNode().setVisible(true);

//更改枚举和标签以反映 ArbiTrack 状态 arbitrack_state = ARBITRACK_STATE.ARBI_PLACEMENT;

4

1 回答 1

0

我找到了一种方法来做到这一点——尽管我不确定它是否理想。

查看 TrackingMethodMarkerless.cs 脚本,StopTracking() 似乎不起作用——它禁用了跟踪的更新,但实际上并没有禁用检测实例。但记下它,我在 ProcessFrame() 函数中添加了一条 if 语句:

//

if (disableMarkerless == false)

trackable.isDetected = _kudanTracker.ArbiTrackIsTracking ();

别的

trackable.isDetected = false;

//

现在,更改 disableMarkerless 布尔运算符会禁用跟踪。

于 2016-08-01T06:14:28.933 回答