Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/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检测Unity中导入的用于AR应用程序的3d模型上的触摸_Unity3d_Augmented Reality_Vuforia - Fatal编程技术网

Unity3d 使用Vuforia检测Unity中导入的用于AR应用程序的3d模型上的触摸

Unity3d 使用Vuforia检测Unity中导入的用于AR应用程序的3d模型上的触摸,unity3d,augmented-reality,vuforia,Unity3d,Augmented Reality,Vuforia,我已经使用Unity和Vuforia构建了一个AR应用程序。所以基本上,当我扫描一些东西时,我会看到一个模型。我已经移除了主摄像头,我们正在为此使用AR摄像头 现在在手机上运行apk我想打开一个url或显示一些关于扫描图像后触摸3d模型的信息。 我知道它使用光线投射,但是一个代码片段可以帮助我在点击3d模型时打开一个url。我是Unity的初学者,因此非常感谢您的帮助。您的模型需要连接碰撞器,以便光线投射注册碰撞。此外,使用标记过滤光线投射结果也很方便。不过,您可以出于相同的目的使用层遮罩。In

我已经使用Unity和Vuforia构建了一个AR应用程序。所以基本上,当我扫描一些东西时,我会看到一个模型。我已经移除了主摄像头,我们正在为此使用AR摄像头

现在在手机上运行apk我想打开一个url或显示一些关于扫描图像后触摸3d模型的信息。


我知道它使用光线投射,但是一个代码片段可以帮助我在点击3d模型时打开一个url。我是Unity的初学者,因此非常感谢您的帮助。

您的模型需要连接碰撞器,以便光线投射注册碰撞。此外,使用标记过滤光线投射结果也很方便。不过,您可以出于相同的目的使用层遮罩。Input.toucks返回上一帧中所有已注册触摸的数组,假设只有一个触摸已注册,但如果需要,可以在有多个触摸的情况下迭代所有触摸,并检查是否有任何触摸击中模型。然后,您可以这样做:

    public void RegisterModelTouch()
    {
        // We assume that there was only one touch and take the first 
        // element in the array.
        Touch touch = Input.touches[0];
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(touch.position);
        if (Physics.Raycast(ray, out hit))
        {
            if (hit.collider.CompareTag("YourModelTag"))
            {
                // Do something (open an URL in your case).
            }                
        }
    }

希望这能有所帮助。

很抱歉问这么简单的问题。我怎样才能知道YourModelTag。你能帮忙吗。你也可以让我知道,因为没有主摄像头,因为我已经删除了它,我正在使用AR摄像头,所以Camera.Main会工作。等待有价值的输入您可以创建自己的标记,然后将它们分配给游戏对象我只是以“YourModelTag”为例。请查看这篇文章以获得深入的解释。对于摄影机,camera.main将返回场景中标记为:MainCamera的任何摄影机。因此,只需为AR相机选择该标记即可。我们必须将该脚本添加到AR相机和3d模型中,或者仅添加到3d模型中。对于相机,我还需要制作一个类似于游戏对象的标记,并将其用作Camera.CameraTagName,其中CameraTagName是分配给相机的标记。或者我可以将AR相机标记为MainCamera MainCamera标记是内置的Unity标记,因此您不需要专门为相机创建标记,只需选择AR相机,然后在inspector的左上角单击标记并选择MainCamera标记。您确实需要为您的模型创建一个标记,只需单击“添加标记和名称”。然后在ComperaTag()中,只需输入该标记的名称。