2016-11-07 3 views
1

Ich entwickle eine App mit Unity3d und dem Google Cardboard SDK. Ich habe versucht, die Sichtfeldeigenschaft für die einzelnen Pappkameras zu erhalten. Das funktioniert im Editor aber gut, wenn ich es auf Android erstelle, scheint die Eigenschaft fieldOfView der Kamera den falschen Wert zurückzugeben.Wie bekomme ich Google-Karton Kamera FOV?

Camera cam = GameObject.FindWithTag("Camera_Left").GetComponent<Camera>(); 
float fov = cam.fieldOfView; 

Ist dies der richtige Weg, um darauf zuzugreifen?

Irgendwelche Vorschläge sehr geschätzt!

EDIT

Um zu klären, ich habe nicht die FOV ändern müssen. Ich brauche nur Zugriff auf einen ziemlich genauen vertikalen FOV-Wert. Ich versuche die Größe eines Spielobjekts zu berechnen, das der Kamera mit dem Sichtfeld angezeigt wird.

Antwort

2

Es gibt viele Werte, die die fieldOfView bestimmt, wann VR verwenden. Es ist einfach nicht mehr das Camera.fieldOfView Eigentum. Die StereoController-Klasse sollte verwendet werden, um dies zu erreichen.

StereoController stereoCtrl = GvrViewer.Controller; 
Debug.Log("Fov: "+stereoCtrl.matchMonoFOV); 

Es gibt auch andere Variablen wie stereoCtrl.stereoMultiplier und stereoCtrl.matchByZoom zu suchen.

+0

Hallo, ich habe mir das angesehen. Allerdings, wenn ich nicht irre reicht matchMonoFOV zwischen 0 und 1 und setzt das Ausmaß, in dem die VR-Kameras die FOV der Monokamera matche .. Um zu klären, ich habe nicht die FOV ändern muß. Ich brauche nur einen ziemlich genauen vertikalen FOV-Wert. Ich versuche zu berechnen, wie groß ein Spielobjekt für die Kamera ist, abhängig von der Entfernung von der Kamera und dem FOV. – Matt

+0

** "Um zu klären, muss ich das Sichtfeld nicht ändern" ** Ich habe nichts in meinem Code geändert. 'StereoController stereoCtrl = GvrViewer.Controller' ruft die aktuelle Instanz' StereoController' auf, so dass wir mit 'stereoCtrl.matchMonoFOV' auf die Eigenschaften zugreifen können. Also, Ihr Kommentar und Bearbeiten in Ihrer Frage macht keinen Sinn. – Programmer

+0

Sie müssen nur einen Weg finden, die '0 und 1' in einen Winkel zu konvertieren. 'MatchMonoFOV' ist was du suchst. – Programmer

Verwandte Themen