马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册帐号
x
之前论坛已经有朋友发过脱卡的内容,是通过重新定位来实现的。 今天我来讲一下官方的扩展追踪ExtendedTracking功能实现脱卡,如果使用过涂涂乐或者开发过类似产品的朋友应该大体了解。直接上图大家看。
这种脱卡可以让卡片离开镜头后依旧能够在保持一个空间的定位。 查阅了一下网上问这个功能的朋友很多,但是好像还没有回答的。 其实实现起来非常的简单,只需要勾选一个选项就可以了,并不需要敲代码。 之前发帖有被喷。。。 说我讲的技巧太简单了,个人觉得只要能帮大家解决实际的问题,敲少点代码不是更好嘛。给需要的朋友看看吧,高手路过就好。 只要勾了这个选项就会启动动态追踪系统,失去识别卡后依然可以根据丢失识别卡时周围的环境保持空间的定位。
ExtendedTracking和SmartTerrain同时只能使用一个,这个需要注意。 可以用代码动态调用扩追踪的脱卡功能,具体演示如下
代码: [C#] 纯文本查看 复制代码 using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Vuforia;
public class UI_Manager : MonoBehaviour
{
#region PROTECTED_MEMBERS
protected bool mExtTrackingEnabled = false;
#endregion //PROTECTED_MEMBERS
#region PUBLIC_METHODS
public bool IsExtendedTrackingEnabled()
{
return mExtTrackingEnabled;
}
public void Button_OpenExt(){
StateManager stateManager = TrackerManager.Instance.GetStateManager();
bool success = true;
foreach (var tb in stateManager.GetTrackableBehaviours())
{
if (tb is ImageTargetBehaviour)
{
ImageTargetBehaviour itb = tb as ImageTargetBehaviour;
itb.ImageTarget.StartExtendedTracking();
}
else if (tb is MultiTargetBehaviour)
{
MultiTargetBehaviour mtb = tb as MultiTargetBehaviour;
mtb.MultiTarget.StopExtendedTracking();
}
else if (tb is CylinderTargetBehaviour)
{
CylinderTargetBehaviour ctb = tb as CylinderTargetBehaviour;
ctb.CylinderTarget.StopExtendedTracking();
}
else if (tb is ObjectTargetBehaviour)
{
ObjectTargetBehaviour otb = tb as ObjectTargetBehaviour;
otb.ObjectTarget.StopExtendedTracking();
}
else if (tb is VuMarkBehaviour)
{
VuMarkBehaviour vmb = tb as VuMarkBehaviour;
vmb.VuMarkTemplate.StopExtendedTracking();
}
}
mExtTrackingEnabled = success ;
}
public void Button_CloseExt(){
StateManager stateManager = TrackerManager.Instance.GetStateManager();
bool success = true;
foreach (var tb in stateManager.GetTrackableBehaviours())
{
if (tb is ImageTargetBehaviour)
{
ImageTargetBehaviour itb = tb as ImageTargetBehaviour;
itb.ImageTarget.StopExtendedTracking();
}
else if (tb is MultiTargetBehaviour)
{
MultiTargetBehaviour mtb = tb as MultiTargetBehaviour;
mtb.MultiTarget.StopExtendedTracking();
}
else if (tb is CylinderTargetBehaviour)
{
CylinderTargetBehaviour ctb = tb as CylinderTargetBehaviour;
ctb.CylinderTarget.StopExtendedTracking();
}
else if (tb is ObjectTargetBehaviour)
{
ObjectTargetBehaviour otb = tb as ObjectTargetBehaviour;
otb.ObjectTarget.StopExtendedTracking();
}
else if (tb is VuMarkBehaviour)
{
VuMarkBehaviour vmb = tb as VuMarkBehaviour;
vmb.VuMarkTemplate.StopExtendedTracking();
}
}
mExtTrackingEnabled = success ;
}
#endregion //PUBLIC_METHODS
}
源码回复可见 喜欢AR的新人有需要可以看看我在蛮牛教育的课程。零基础入门。 AR涂涂乐实战讲解 :http://edu.manew.com/course/162 AR房地产项目实战:http://edu.manew.com/course/172 AR双卡互动:http://edu.manew.com/course/175
|