Unity中的Kudan:如何停止或重置无标记跟踪?

时间:2016-07-30 06:54:01

标签: unity3d kudan slam

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

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

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

它说要称这三件事:

//停止ArbiTrack arbiTrack.stop();

//显示目标节点 。arbiTrack.getTargetNode()调用setVisible(真);

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

1 个答案:

答案 0 :(得分:0)

我找到了一种方法 - 虽然我不确定它是否理想。

查看TrackingMethodMarkerless.cs脚本,似乎StopTracking()不起作用 - 它禁用了跟踪的更新,但实际上并未禁用检测实例。但是从中注释,我在ProcessFrame()函数中添加了一个if语句:

//

if(disableMarkerless == false)

trackable.isDetected = _kudanTracker.ArbiTrackIsTracking();

否则

trackable.isDetected = false;

//

现在,更改disableMarkerless bool操作符会禁用跟踪。