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

2019-03-15  本文已影响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

核心代码就两句:

上一篇下一篇

猜你喜欢

热点阅读