我已经成功开发了一个3d对象检测AR应用程序。当显示3d对象时,在检测到时,应用程序会显示一些3d Unity游戏对象,这些对象在vuforia对象跟踪器中是分层的。我希望为用户提供一个选项,以防他们没有要检测的3d对象,只需模拟就像检测到对象一样,并通过单击按钮显示相关的3d对象。 有人可以指导我吗?
答案 0 :(得分:0)
我认为你有OnTrackingFound / OnTrackingLost方法。在里面,它设置所有对象(或父对象)。你只需要告诉你只需要一个:
public GameObject objA, objB, objC;
private GameObject currentObj = null;
private bool isTracking = false;
private void Start()
{
if(objA == null) { Debug.LogError("Missing objext"); }
if(objB == null) { Debug.LogError("Missing objext"); }
if(objC == null) { Debug.LogError("Missing objext"); }
}
void OnTrackingFound()
{
this.isTracking = true;
OnTrackingLost();
if(currentObj != null) { currentObj.SetActive(true); }
}
void OnTrackingLost()
{
this.isTracking = false;
objA.SetActive(false); objB.SetActive(false); objC.SetActive(false);
}
public void SetObjectWithUI(GameObject obj)
{
this.current = obj;
if (this.isTracking == true){ OnTrackingFound(); }
}
在UI上添加三个按钮,并使用SetObjectWithUI作为事件。然后在GameObject插槽中,拖动要显示的三个不同的游戏对象。按下按钮时,根据当前跟踪,它将重置或不执行任何操作。
答案 1 :(得分:0)
为什么不将“用户定义的目标”用于对象检测
用户定义的目标允许最终用户在运行时选择图像。因此,用户通过从他或她的直接环境中选择图像(如照片,书籍封面或海报)来“随时随地”体验AR,而无需携带预定目标。
只需下载示例
对象识别
用户定义目标
来自:https://developer.vuforia.com/downloads/samples
并将两者结合起来