Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使图像识别后显示的内容保持原样?(unity3d vuforia)_Unity3d_Vuforia - Fatal编程技术网

如何使图像识别后显示的内容保持原样?(unity3d vuforia)

如何使图像识别后显示的内容保持原样?(unity3d vuforia),unity3d,vuforia,Unity3d,Vuforia,您好,我正在开发Vuforia AR图像识别应用程序 但是,我希望在扫描图像时显示一个对象,并且该图像与被识别的图像保持独立(不受扫描图像位置的影响,并且在相机中具有固定的坐标) 我怎样才能做到这一点 这是通过脚本完成的吗?如果是,如何编写脚本?我将在哪里添加脚本组件 到目前为止我所尝试的是 刚刚跟进 但是使用了不同的目标和对象 我只想使识别后出现的物体不相连 提前谢谢你。我不知道你是否还在关注这篇文章 以下是你的答案: 我怎样才能做到这一点 通过将三维模型传输到摄影机 my3D.transfo

您好,我正在开发Vuforia AR图像识别应用程序

但是,我希望在扫描图像时显示一个对象,并且该图像与被识别的图像保持独立(不受扫描图像位置的影响,并且在相机中具有固定的坐标)

我怎样才能做到这一点

这是通过脚本完成的吗?如果是,如何编写脚本?我将在哪里添加脚本组件

到目前为止我所尝试的是

刚刚跟进
但是使用了不同的目标和对象

我只想使识别后出现的物体不相连


提前谢谢你。

我不知道你是否还在关注这篇文章

以下是你的答案:

我怎样才能做到这一点

通过将三维模型传输到摄影机

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”);
}

到目前为止,您还尝试了什么?你能发布你的代码吗?我只看了一段视频,没有做任何编码,因为我不知道从哪里开始