1

Unityのゲームビューでは、ゲーム開始時は常に同じポイントにグレージングされています。ゲーム開始時の頭の回転は常に(0,0,0)です。

残念ながら、コンパイルして Android フォンにプッシュすると、それは起こりません。ゲームの開始時に、プレイヤーがたどらなければならない道が後ろにあるため、おそらくプレイヤーは体を 180 度回転させる必要があります (うまくいけば、彼は体を回転させます: プレイヤーが頭を 180 度回転させると、おそらく彼は死ぬでしょう)。

ちなみに、これは 2 番目のシーンが読み込まれるときに発生します。最初のシーンはOKのようです。問題は私がするときに起こりますUnityEngine.SceneManagement.SceneManager.LoadScene ("GameScene");

GameScene の関数を呼び出す直前とLoadScene最後に、次のコードを追加しようとしました。Start

cardboardHead.GetComponent<Transform> ().rotation = Quaternion.identity;

ただし、Unity で実行時に値を変更すると、その値を即座に元に戻すため、実行時にその値を変更できないようです。

回避策として、親の回転を次のように変更します。頭の回転が 156 の場合、頭の親ゲーム オブジェクトは -156 になります。それは機能するはずですが、エレガントなソリューションではありません。

4

1 に答える 1

3

Cardboard SDK を使用すると、その再中心化を行う機能があります。

Cardboard.SDK.Recenter ();

カメラ変換を直接変更する代わりに試してください。向きを変えるにはヘッドトラッカーが必要だからです。

UPDATE : 上記のコードは、古いバージョンの Google Cardboard で機能します。現在は Google VR に名前が変更されており、上記のコードは次のように変更されています。

GvrViewer.Instance.Recenter ();
于 2016-06-16T19:23:31.923 に答える