繁体   English   中英

Vuforia SDK在Unity3d中使用Raycast for ARCamera的问题

[英]Problems with Raycast for ARCamera in Unity3d with Vuforia SDK

我是Vuforia的新手。

添加了脚本的游戏对象是一个3d对象,在用户定义的触发图像上可见。

我知道这不是一个新问题,因此我已经遍历了Vuforia官方讨论博客上的每个主题/帖子,但问题仍然存在。 这个问题似乎非常根本。

我的游戏对象附有以下脚本:

void Update () 
{
    if (Input.touchCount == 1) 
    {
        // Touches performed on screen
        Ray ray;
        RaycastHit hit;
        Debug.Log ("2");
        if(Camera.main != null)
        {
            Debug.Log ("3");
            ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
            hit = new RaycastHit();
            Debug.Log ("33");
            if(Physics.Raycast(ray, out hit))
            {
                Debug.Log ("4");
            }
                   }
            }
    }

当我运行场景并触摸游戏对象时,调试控制台将显示

2

3

33

但不是4.射线无法照到物体上。

该脚本可以在普通相机上正常工作。 任何人都可以对此有所了解。

谢谢

(据我所知),Vuforia没有使用ARCamera进行碰撞检测。 而是有另一个“背景摄影机”(如果您在Unity中运行您的应用程序并将其暂停,则可以看到它;可以在“层次结构”窗格中找到它)。 要使用它

Camera.allCameras[0] 

代替

Camera.main

希望能有所帮助

我认为这是Collider类和ARCamera之间的错误,但是解决方案是这样的:

  1. 创建一个新场景
  2. 创建具有碰撞组件的多维数据集或任何游戏对象。
  3. 请勿出于任何原因删除多维数据集
  4. 使用任何点击算法(触摸或鼠标)进行测试

     using System.Collections; using UnityEngine; public class rayoPrueba : MonoBehaviour { void start () {print("entro"); } void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, 100)) print("Si le jue"); } } 
  5. 为ARCamera更换mainCamera

  6. 再次测试
  7. 将多维数据集放入ImageTarget和真实模型中
  8. 删除多维数据集,然后跳舞!! 我不知道为什么,但是这个错误被杀死了。

诀窍是...永远不要从场景中丢失带有Collider Component的gameObject。

如果尝试在3D模型上使用RayCast命中目标,则应确保在3D模型上添加Box Collider Component。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM