【问题标题】:Problems with Raycast for ARCamera in Unity3d with Vuforia SDK带有 Vuforia SDK 的 Unity3d 中 ARCamera 的 Raycast 问题
【发布时间】:2014-07-29 09:38:23
【问题描述】:

我是 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. 不知何故,这条射线没有击中物体。

此脚本适用于普通相机。任何人都可以对此有所了解。

谢谢

【问题讨论】:

    标签: c# camera unity3d augmented-reality vuforia


    【解决方案1】:

    (据我所知)Vuforia 不使用 ARCamera 进行碰撞检测。取而代之的是另一个“背景摄像头”(如果您在 Unity 中运行应用程序并暂停它,您可以看到它;您会在层次结构窗格中找到它)。要访问它,请使用

    Camera.allCameras[0] 
    

    而不是

    Camera.main
    

    希望有帮助

    【讨论】:

      【解决方案2】:

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

      1. 创建一个新场景
      2. 创建一个立方体或任何带有碰撞器组件的游戏对象。
      3. 不得以任何理由删除 Cube
      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. 将 mainCamera 替换为 ARCamera

      6. 再次测试
      7. 将 u`r Cube 放入 ImageTarget 和真实模型中
      8. 删除立方体,让我们跳舞吧!!我不知道为什么,但是这个 bug 被杀死了 ...(Y) ..

      诀窍是......永远不要从场景中丢失带有 Collider 组件的游戏对象......

      【讨论】:

        【解决方案3】:

        如果您尝试在 3d 模型上使用 RayCast,您应该确保在 3d 模型上添加 Box Collider 组件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-07
          • 1970-01-01
          相关资源
          最近更新 更多