###したいこと
カメラのPositionをVector3(0, 0, 0,)に固定したいです。
###前提
Unity+OculusRiftで3D空間・一人称視点のオンラインアプリを制作しています。
Unity上でVirtual Reality SupportedをONにし、動作しています。
オンライン環境はPhoton Unity Networkingで実装しています。
###発生している問題
移動などのスクリプトはうまくいっているのですが、
OculusRiftを接続したときのカメラの動きが少し難解です。
プレハブの構造を簡単に説明すると
PlayerPrefab
└Camera
となっているのですが、プレハブをインスタンス化するとプレハブ内のカメラのtransform.Positionが
X=0.4456
Y=0.2300
Z=-0.3594
と、それぞれの値が上記値付近を細かく移動しています。
キャラクターの目の前に配置したはずのカメラが、右肩あたりに配置され、動かせません。
###試したこと
PlayerPrefab
└root
└Camera
とカメラに親要素を追加し、rootのPositionを動的に変更
public Camera Cam; //PlayerPrefab内のCamera private GameObject root; //PlayerPrefab内のroot private Vector3 camPosition; //カメラのposition取得用 private Vector3 rootPosition; //rootのposition設定用 void Start() { rootCam = cam.transform.parent.gameObject; //カメラの親要素取得 } void Update() { camPosition = UniCam.transform.localPosition; //カメラのposition取得 rootPosition = new Vector3(-camPosition.x, -camPosition.y, -camPosition.z); //カメラpositionのズレ分だけ引く rootCam.transform.localPosition = rootPosition; }
これで一応はできるのですが、さらにRotateとかをいじると、もうグチャグチャになります。
こんな強引なやり方以外に何かスマートな方法はないでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。