Oculus Rift 光线投射
Oculus Rift raycast
我目前正在使用 Oculus rift 的 unity 运行安装 OVRCameraRig 和附加到 CenterEyeAnchor 的脚本。此脚本使用以下代码。
GameObject dot;
void Start () {
dot = GameObject.CreatePrimitive(PrimitiveType.Sphere);
dot.GetComponent<Renderer>().material.color = Color.red;
dot.layer = 2;
dot.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
}
void Update () {
RaycastHit hit;
if (Physics.Raycast(transform.position, Vector3.forward, out hit, 80.0f))
{
dot.transform.position = hit.point;
}
else
{
dot.transform.position = transform.forward * 80 + transform.position;
}
}
当我 运行 在没有插入 rift 耳机的情况下执行以下代码时,RayCast 与所有对象发生碰撞(同时在场景中移动 OVRCameraRig)但是如果我在插入 rift 的情况下重新启动程序,光线投射穿过所有物体,因此将球移离您 80 个单位。
我想知道为什么在我插入耳机后 RayCasts 行为会发生变化,是否有办法阻止这种情况。
编辑:在调试以下代码时,似乎当裂谷连接时,光线投射总是无法命中所有对象
是在 Raycast 中使用 Vector3.forward 而不是 transform.forward
的简单错误类型
我目前正在使用 Oculus rift 的 unity 运行安装 OVRCameraRig 和附加到 CenterEyeAnchor 的脚本。此脚本使用以下代码。
GameObject dot;
void Start () {
dot = GameObject.CreatePrimitive(PrimitiveType.Sphere);
dot.GetComponent<Renderer>().material.color = Color.red;
dot.layer = 2;
dot.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
}
void Update () {
RaycastHit hit;
if (Physics.Raycast(transform.position, Vector3.forward, out hit, 80.0f))
{
dot.transform.position = hit.point;
}
else
{
dot.transform.position = transform.forward * 80 + transform.position;
}
}
当我 运行 在没有插入 rift 耳机的情况下执行以下代码时,RayCast 与所有对象发生碰撞(同时在场景中移动 OVRCameraRig)但是如果我在插入 rift 的情况下重新启动程序,光线投射穿过所有物体,因此将球移离您 80 个单位。 我想知道为什么在我插入耳机后 RayCasts 行为会发生变化,是否有办法阻止这种情况。
编辑:在调试以下代码时,似乎当裂谷连接时,光线投射总是无法命中所有对象
是在 Raycast 中使用 Vector3.forward 而不是 transform.forward
的简单错误类型