如何使图像识别后显示的内容保持原样?(unity3d vuforia)
您好,我正在开发Vuforia AR图像识别应用程序 但是,我希望在扫描图像时显示一个对象,并且该图像与被识别的图像保持独立(不受扫描图像位置的影响,并且在相机中具有固定的坐标) 我怎样才能做到这一点 这是通过脚本完成的吗?如果是,如何编写脚本?我将在哪里添加脚本组件 到目前为止我所尝试的是 刚刚跟进如何使图像识别后显示的内容保持原样?(unity3d vuforia),unity3d,vuforia,Unity3d,Vuforia,您好,我正在开发Vuforia AR图像识别应用程序 但是,我希望在扫描图像时显示一个对象,并且该图像与被识别的图像保持独立(不受扫描图像位置的影响,并且在相机中具有固定的坐标) 我怎样才能做到这一点 这是通过脚本完成的吗?如果是,如何编写脚本?我将在哪里添加脚本组件 到目前为止我所尝试的是 刚刚跟进 但是使用了不同的目标和对象 我只想使识别后出现的物体不相连 提前谢谢你。我不知道你是否还在关注这篇文章 以下是你的答案: 我怎样才能做到这一点 通过将三维模型传输到摄影机 my3D.transfo
但是使用了不同的目标和对象 我只想使识别后出现的物体不相连
提前谢谢你。我不知道你是否还在关注这篇文章 以下是你的答案: 我怎样才能做到这一点 通过将三维模型传输到摄影机
my3D.transform.SetParent(Camera.main.transform);
这是通过脚本完成的吗
对
如果是,如何编写脚本
首先,你需要知道你想要什么样的“棍子”。相机离开标记时,是否有触发按钮或它只是卡住
如果有一个触发按钮,您可以编写脚本,这样当您单击/点击按钮时,它会将3D(游戏对象)父对象更改为摄影机
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;
}
在OnTrackingLost()函数中,输入以下代码:
my3D.transform.SetParent(Camera.main.transform);
之后,转到Inspector视图,单击ImageTarget,在那里
将是这样的:
只需将3D从层次视图拖动到可变图像
显示
我将在哪里添加脚本组件
如果你使用“按钮”方法,只需创建一个空的游戏对象
并将脚本附加到它
希望它能有所帮助,因为对vuforia的支持非常有限 对我来说唯一有效的方法是在脚本开头添加一个布尔变量,并使其在OnTrackingLost()输入时变为true。我不知道我是否能解释我自己 首先,在开始时创建:
private bool bol=false代码>
然后在函数上:
private void OnTrackingLost()
{
Renderer[]rendererComponents=GetComponentsInChildren(true);
Collider[]colliderComponents=GetComponentsInChildren(true);
如果(!bol){
//禁用渲染:
foreach(渲染器组件中的渲染器组件)
{
component.enabled=false;
}
//禁用碰撞器:
foreach(colliderComponents中的碰撞器组件)
{
component.enabled=false;
}
bol=真;
}
Debug.Log(“Trackable”+mtrackablebehavior.TrackableName+“lost”);
}
到目前为止,您还尝试了什么?你能发布你的代码吗?我只看了一段视频,没有做任何编码,因为我不知道从哪里开始