【问题标题】:Kudan in Unity: how to stop or reset markerless tracking?Unity 中的 Kudan:如何停止或重置无标记跟踪?
【发布时间】:2016-07-30 06:54:01
【问题描述】:

我正在使用 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;

【问题讨论】:

    标签: unity3d kudan slam


    【解决方案1】:

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

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

    //

    if (disableMarkerless == false)

    trackable.isDetected = _kudanTracker.ArbiTrackIsTracking();

    其他

    trackable.isDetected = false;

    //

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

    【讨论】:

    • 是的,对象仅在跟踪“丢失”时禁用,但在手动停止时不会禁用。这一点可以在未来的版本中进行更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 2023-04-02
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    相关资源
    最近更新 更多