2017-01-31 46 views
0

В настоящее время я использую единство с расколом Oculus, работающим под OVRCameraRig, и скриптом, прикрепленным к нему CenterEyeAnchor. Этот скрипт использует следующий код.Oculus Rift raycast

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; 
     } 
    } 

Когда я запускаю следующий код без рифтовой гарнитуры подключен к сети, RayCast сталкивается со всеми объектами (в то время как перемещение OVRCameraRig в пределах сцены), однако, если я перезапустить программу с моим разлом подключен, raycast идет через все объекты и, следовательно, перемещает мяч на расстоянии 80 единиц от вас. Мне интересно, почему поведение RayCasts изменилось после того, как я включу минигарнитуру, и если будет способ остановить это.

Edit: При отладке следующий код, кажется, что, когда рифтовая подключен raycast всегда удается попасть на все объекты

ответ

0

Был простой в использовании печатать с ошибками Vector3.forward в Raycast, а не transform.forward