2016-11-07 39 views
1

我正在開發一款使用Unity3d和Google Cardboard SDK的應用程序。我一直在試圖獲得單個Cardboard相機的視野屬性。這在編輯器中工作正常,但是,當我將它構建到Android時,相機的fieldOfView屬性似乎返回錯誤的值。如何獲得谷歌紙板相機FOV?

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

這是訪問它的正確方法嗎?

任何建議非常感謝!

編輯

爲了說明我不需要改變視角。我只需要訪問相當準確的垂直FOV值。我正在嘗試計算遊戲對象在使用FOV時會出現在相機上的大小。

回答

2

使用VR時,有很多值決定了fieldOfView。這不僅僅是Camera.fieldOfView屬性。應該使用StereoController類來消除這種情況。

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

還有其他變量來看待,如stereoCtrl.stereoMultiplierstereoCtrl.matchByZoom

+0

嗨,我看看這個。但是,除非我錯誤matchMonoFOV範圍介於0和1之間,並設置VR攝像機匹配單聲道攝像機的FOV的程度。 爲了說明我不需要更改FOV。我只需要一個相當準確的垂直FOV值。我正在嘗試計算遊戲對象對相機的尺寸,具體取決於相機和FOV之間的距離。 – Matt

+0

**「爲了澄清我不需要更改FOV」**我沒有更改我的代碼中的任何內容。 'StereoController stereoCtrl = GvrViewer.Controller'將獲得當前實例'StereoController',以便我們可以通過'stereoCtrl.matchMonoFOV'訪問它的屬性。所以,你的評論和編輯在你的問題沒有意義。 – Programmer

+0

你只需要找到一種方法來將'0和1'轉換成一個角度。 'matchMonoFOV'就是你要找的。 – Programmer