美文网首页
【Vuforia 琐碎知识 4】获得所有可跟踪对象

【Vuforia 琐碎知识 4】获得所有可跟踪对象

作者: 大刀和长剑 | 来源:发表于2019-03-15 10:58 被阅读0次

    本文的测试环境:

    • macOS Mojave 10.14.2 / MacBook Pro 2015
    • Unity 2018.3.8f1
    • Vuforia 8.0.10

    在之前的Unity版本中,Databases下还可以勾选激活,或者在代码中激活。但是现在的Unity的Vuforia已经把这个改成自动激活了——只要场景中存在某Database的跟踪脚本,程序运行后将自动把该Database中所有目标加载出来。

    这等于说省事了,但是这些自动加载出来的ImageTarget没有添加跟踪事件脚本:


    自动加载出来的ImageTarget没有添加跟踪事件脚本

    当数量太多的时候手动修改就太费劲了,需要在代码中直接批量修改了。

    需求就是这个需求,方法也简单,我们批量处理这些对象的时机是Vuforia启动完成后,这可注册一个回调即可:

    Vuforia.VuforiaARController.Instance.RegisterVuforiaStartedCallback(() => {
                Debug.Log("Vuforia启动完成...");
    
                foreach (var tb in Vuforia.TrackerManager.Instance.GetStateManager().GetTrackableBehaviours())
                {
                    Debug.Log(tb.TrackableName + " 跟踪目标");
                    tb.name = tb.TrackableName + "ImageTarget";
                    tb.gameObject.AddComponent<DefaultTrackableEventHandler>();
                    tb.gameObject.AddComponent<Vuforia.TurnOffBehaviour>();
                }
    });
    

    还是看图吧:


    屏幕快照 2019-03-15 上午10.56.07.png

    核心代码就两句:

    • 处理的时机RegisterVuforiaStartedCallback
    • 获得所有可跟针对象 Vuforia.TrackerManager.Instance.GetStateManager().GetTrackableBehaviours()

    相关文章

      网友评论

          本文标题:【Vuforia 琐碎知识 4】获得所有可跟踪对象

          本文链接:https://www.haomeiwen.com/subject/yrxlmqtx.html