Oculus Rift光线投射

时间:2017-01-31 18:22:02

标签: c# unity3d unity5 virtual-reality oculus

我目前正在使用Oculus rift运行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)但是如果我在插入了裂缝的情况下重新启动程序,则光线投影将遍历所有对象和因此球移动80个单位远离你。 我想知道为什么在我插入耳机之后RayCasts的行为会发生变化,如果有办法阻止它。

编辑:在调试以下代码时,似乎当连接裂缝时,光线投射总是无法击中所有对象

1 个答案:

答案 0 :(得分:0)

在Raycast中使用Vector3.forward是一种简单的错误,而不是transform.forward