2016-04-11 13 views
-1

Ich habe und raycast, und ein rayCastHit. Immer wenn der Benutzer auf den Feuerknopf klickt. Es wird den FPS-Charater an den Ort bewegen, an dem sich der rayCastHit befindet. lightRetical ist eine gameObject-Variable, die ein Spotlight ist, das anzeigt, wo sich rayCastHit befindet.RayCast funktioniert nicht in GearVR

Die lustige Sache ist, es funktioniert, wenn ich in Einheit play klicken. Aber wann immer ich mein Android-Handy baue funktioniert es nicht. Ich kann den FPS-Charakter nicht bewegen.

Das FPS-Zeichen, das ich verwendete, stammt aus dem Standard-Asset "character" und die Codes, die ich sie der Update() -Methode hinzufüge.

 RaycastHit seen; 
     Ray raydirection = new Ray(transform.position, cam.transform.forward); 
     int sightlength = 5; 
     if (Physics.Raycast(raydirection, out seen, sightlength)) 
     { 
      if (seen.collider.tag == "Floor" && Input.GetButtonDown("Fire1")) //in the editor, tag anything you want to interact with and use it here 
      { 
       Vector3 relativePoint; 
       lightRetical.SetActive(true); 
       relativePoint = seen.point; 
       relativePoint.y = 2.0f; 
       bodychar.transform.position = relativePoint; 
      } 
      else 
      { 
       lightRetical.SetActive(true); 
       Vector3 relativePoint; 
       relativePoint = seen.point; 
       relativePoint.y = 2.64f; 
       lightRetical.transform.position = relativePoint; 

      } 
     } 
     else 
     { 
      lightRetical.SetActive(false); 
     } 
+0

Sie haben 'ScreenPointToRay (Input.mousePosition);' Ich habe VR vorher nicht verwendet, aber ich denke, dass das Problem sein könnte. Diese Codezeile, verwenden Sie eine Maus oder einen Berührungssensor mit VR? – Programmer

+0

Danke für die Antwort, ich benutze nichts anderes, nur die VR allein. Hast du irgendwelche Vorschläge, die ich machen kann? Ich versuche gerade, die Input.mousePosition durch neue Vector3 zu ersetzen (200, 200, 0) – UserBlanko

+0

Ich weiß nicht, warum Sie 'Input.mousePosition' verwenden würden, wenn keine Maus angeschlossen ist. Kannst du erklären, was du in dieser Zeile und im zweiten Raycast machen willst? Vielleicht gibt es eine andere bessere Möglichkeit, dies in VR zu tun. – Programmer

Antwort

0

Ich schlage vor, den Strahl aus der Kameraposition nach vorne zu werfen. Wenn der Spieler seinen Kopf dreht, wird der Raycast folgen. Ich entwickle gerade eine App für VR und das scheint die beste Lösung zu sein. Sie können Kollisionsebenen verwenden, um den Raycast zu filtern. Ich würde auch die hit.transform auf die Konsole drucken, um zu überprüfen, was der Raycast trifft. Hoffe das hilft.

+0

Hallo vonis, Ich habe die Codes geändert, aber es funktioniert immer noch nicht – UserBlanko

+0

Haben Sie versucht, den Raycast zu debuggen? Um zu sehen, ob es im Editor erscheint? – vonis22

+0

Der Editor funktioniert gut, auch im Spielmodus. Aber wann immer ich den gearVR benutze, hat es nicht funktioniert. Gibt es eine Möglichkeit, die App zu debuggen, wenn ich sie mit dem gearVR verwende? – UserBlanko

Verwandte Themen