如何使图像识别后出现的东西保持不变? (unity3d vuforia)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使图像识别后出现的东西保持不变? (unity3d vuforia)相关的知识,希望对你有一定的参考价值。
你好我正在开发一个Vuforia AR图像识别应用程序。
但是,我希望在扫描图像时出现一个物体,并且该图像保持不被附着(不受扫描图像的位置影响并且在相机中具有固定坐标)到被识别的图像。
我怎样才能做到这一点?
这是通过脚本完成的吗?如果是这样,我怎么编写脚本?我将在哪里添加脚本组件?
到目前为止我尝试过的是
刚跟着this video 但使用了不同的目标和对象
我只是想让识别后出现的物体不被附着
先感谢您。
我不知道你是否仍然关注这篇文章。
这是你的答案:
我怎样才能做到这一点?
通过将3D模型传输到相机。
这是通过脚本完成的吗?
是。
如果是这样,我怎么编写脚本?
首先,你需要知道你想要什么样的“棒”。是否有触发按钮,或者当相机远离标记时它会粘住?
如果有一个触发按钮,您可以编写脚本,例如当您单击/点击按钮时,它会将3D(GameObject)父级更改为相机。
my3D.transform.SetParent(Camera.main.transform);
如果你想这样做,当你移动你的相机,3D模型自动粘在相机上,它会稍微复杂一点。您需要访问VuforiaImageTarget对象中的ImageTargetTrackableEventHandler.cs。寻找一个名为OnTrackingLost()的函数。代替 :
Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true); Collider[] colliderComponents = GetComponentsInChildren<Collider>(true); // Disable rendering: foreach (Renderer component in rendererComponents) { component.enabled = false; } // Disable colliders: foreach (Collider component in colliderComponents) { component.enabled = false; }
您通过禁用它来删除整个代码块,并在脚本之上添加
[SerializeField] GameObject my3D;
在OnTrackingLost()函数内部,输入以下代码:
my3D.transform.SetParent(Camera.main.transform);
之后,转到Inspector视图,单击ImageTarget,会出现这样的情况:
只需将3D从“层次结构”视图拖动到显示的变量图像即可。
我将在哪里添加脚本组件?
如果你正在使用“按钮”方法,只需创建一个空的游戏对象并将脚本附加到它。
希望它有所帮助,因为对于vuforia的支持非常有限。 :)
对我来说唯一有用的是在脚本的开头添加一个布尔变量,并使其在OnTrackingLost()进入时,布尔值变为true。我不知道自己是否解释过。
首先你在开头创建:
private bool bol = false;
然后在功能上:
private void OnTrackingLost()
{
Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);
if (!bol) {
// Disable rendering:
foreach (Renderer component in rendererComponents)
{
component.enabled = false;
}
// Disable colliders:
foreach (Collider component in colliderComponents)
{
component.enabled = false;
}
bol = true;
}
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
}
以上是关于如何使图像识别后出现的东西保持不变? (unity3d vuforia)的主要内容,如果未能解决你的问题,请参考以下文章
从角度 8 的导航栏中选择一个选项后,如何使侧面导航保持不变并且内容单独消失?