[英]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之间的错误,但是解决方案是这样的:
使用任何点击算法(触摸或鼠标)进行测试
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"); } }
为ARCamera更换mainCamera
诀窍是...永远不要从场景中丢失带有Collider Component的gameObject。
如果尝试在3D模型上使用RayCast命中目标,则应确保在3D模型上添加Box Collider Component。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.