C# Vuforia/倾斜触摸和消除bg对物体的干扰
我已经在一个项目上工作了一段时间,最终我得到的是一个少数报告风格的设置,前面有AR屏幕。我正在使用一个名为lean touch的unity插件,它允许我点击手机屏幕并选择3d对象。然后我可以移动它们并缩放它们,这很好 我有一个不想要的副作用,虽然在不同的情况下,这将是美妙的,但在这种情况下,它伤害了我的头。如果您使用用户定义的目标触发目标,屏幕将显示在您的前面,后面是摄像头(真实世界)。然后,我点击该项目,并可以在我的移动设备上拖动互动。问题是,如果有人在后台走过我的手机,跟踪系统会在他们走过时将我的物品“推”出我的屏幕 在不同的设置下,我可以利用这一点,当我在相机后面挥手时,我可以与物品互动,不幸的是,我所能做的只是将物品从一边推到另一边,而不是缩放或其他任何东西,这让体验有点问题。因此,我想帮助找出如何停止跟踪我的对象的位置,如果相机背景发生变化。因此,在触摸屏幕进行交互之前,将对象留在屏幕上 我不确定到底需要打开或关闭什么,如果它是vuforia设置或带有图层等的lean touch unity设置或刚体或其他要添加的内容。我需要方向性的建议,因为我现在正在兜圈子 下面是截图 如果我在后面挥手或有人走过,它会移动AR元素 如有意见,将不胜感激C# Vuforia/倾斜触摸和消除bg对物体的干扰,c#,unity3d,touch,augmented-reality,vuforia,C#,Unity3d,Touch,Augmented Reality,Vuforia,我已经在一个项目上工作了一段时间,最终我得到的是一个少数报告风格的设置,前面有AR屏幕。我正在使用一个名为lean touch的unity插件,它允许我点击手机屏幕并选择3d对象。然后我可以移动它们并缩放它们,这很好 我有一个不想要的副作用,虽然在不同的情况下,这将是美妙的,但在这种情况下,它伤害了我的头。如果您使用用户定义的目标触发目标,屏幕将显示在您的前面,后面是摄像头(真实世界)。然后,我点击该项目,并可以在我的移动设备上拖动互动。问题是,如果有人在后台走过我的手机,跟踪系统会在他们走过时
与对象交互的唯一代码是下面的代码,它位于一个平面上,该平面用作交互屏幕预制的支架对象,因此当屏幕认为它是gui元素,因此不可交互时,lean touch将移动该平面,添加最后一行是为了隐藏原始平面,因此当我倾斜触摸并拖动屏幕时,副本不可见
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
public class activateChildObjects : MonoBehaviour {
public GameObject MyObjName;
//Get the original GUI item to disable on drag of the cloned item
public string pathToDeactivate;
void Update(){
if(DefaultTrackableEventHandler.lostFound == true){
foreach (Transform child in MyObjName.transform) {
child.gameObject.SetActive(true);
}
Debug.Log("GOT IT");
}else{
foreach (Transform child in MyObjName.transform) {
child.gameObject.SetActive(false);
}
Debug.Log("Lost");
}
//Remove original panel
GameObject.Find("UserDefinedTarget/"+pathToDeactivate).SetActive(false);
}
}
编辑
好吧,我并没有阻止它发生,但在多次代码尝试后,我只是勾选了所有跟踪选项,以尝试并防止发现额外的跟踪,这是不对的,但这是一种改进。现在必须这样做。
如果相机背景发生变化,则停止跟踪我的对象位置。这是不可能的,因为您需要依靠相机背景的变化才能正确显示
游戏对象。好的,但有东西正在触发,而通常不会触发。在Vuforia中的普通图像目标场景中,你可以在背后挥动你的手,并且不会改变位置,除非你完全覆盖目标而不进行扩展跟踪。不知何故,通过精益触摸,它使检测行为像物体一样难以处理。也许是碰撞机导致了问题。精益触摸不应该是一个问题,因为它只识别显示器上的触摸。它可能来自最新的vuforia
版本,可能会看到更改日志?你是对的,我使用了精益触控,问题仍然存在,如果我使用Prefate用户定义的示例,问题就不存在了,区别在于它们覆盖了画布,阻止了问题的发生,问题是它也会停止精益触摸的触摸事件。目前,我正试图停止跟踪,但一旦对象生成,就让相机保持开启状态。我使用了这段代码,但它也停止了初始生成:TrackerManager.Instance.GetTracker().Stop();如果相机背景发生变化,则停止跟踪我的对象位置。这是不可能的,因为您需要依靠相机背景的变化来正确显示游戏对象
。好的,但某些东西正在触发,而通常不会触发。在Vuforia中的普通图像目标场景中,你可以在背后挥动你的手,并且不会改变位置,除非你完全覆盖目标而不进行扩展跟踪。不知何故,通过精益触摸,它使检测行为像物体一样难以处理。也许是碰撞机导致了问题。精益触摸不应该是一个问题,因为它只识别显示器上的触摸。它可能来自最新的vuforia
版本,可能会看到更改日志?你是对的,我使用了精益触控,问题仍然存在,如果我使用Prefate用户定义的示例,问题就不存在了,区别在于它们覆盖了画布,阻止了问题的发生,问题是它也会停止精益触摸的触摸事件。目前,我正试图停止跟踪,但一旦对象生成,就让相机保持开启状态。我使用了这段代码,但它也停止了初始生成:TrackerManager.Instance.GetTracker().Stop();