Oculus Riftでのカメラ位置の初期化
目的
UnityのVirtual Reality Supportedを利用すると、Main Cameraが自動的にセンサーで取得した位置に移動します。 このままでは扱いにくいので、指定の位置にカメラを配置するスクリプトを作ります。 Unityの標準で使えるInputTrackingを使って実装することで、特別なアセットを使うことなく、他のHMDでも機能するように実装したつもりです(Riftしか持っていないのでViveとかで動作確認できてません。)
手順
- Player Settings → Virtual Reality Supported にチェックを入れる
- Empty GameObject を作り、VRCameraと名づける
- Main CameraをVRCameraの子オブジェクトにして、Main CameraのPositionを(0,0,0)にする
- vrcameraスクリプト(以下参照)を作ったオブジェクトに追加する
これでMain Cameraがvrcameraオブジェクトの位置で初期化できる。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.VR; public class vrcamera : MonoBehaviour { void Start () { Vector3 pos = InputTracking.GetLocalPosition(VRNode.CenterEye); this.transform.position -= pos; } }