Unity 用のGoogle VR SDK を使用して、SDK に付属のコンポーネントを使用して単純な 360 ビデオ ビューアーを構築しようとしています。ユーザーがメニューからナビゲートしたときにソース ビデオを動的に変更するために、PanoVideoSample を拡張しようとしています。
コードを使用して GvrVideoPlayerTexture の URL を変更できません。彼らのデモ シーン (VideoDemo) には、Video Sphere を含む PanoVideoSample があり、インスペクタ パネルで GVRVideoPlayerTexture スクリプトを編集して、適切なビデオ URL を指すようにすることができます。
個々のビデオ球体の束をハードコーディングして非表示/表示するのではなく、C# でビデオ URL を動的に設定したいと思います。私はこれを次のコードでほぼ動作させました。
public void SwapVideo(int index){
videoSphere.GetComponentInChildren<GvrVideoPlayerTexture> ().videoURL = urls [index];// my new url
videoSphere.GetComponentInChildren<GvrVideoPlayerTexture>().ReInitializeVideo ();
videoSphere.SetActive (true);
}
public void ReturnToMainMenu(){
videoSphere.GetComponentInChildren<GvrVideoPlayerTexture>().CleanupVideo();
videoSphere.SetActive (false);
this.gameObject.SetActive (true);
}
上記のコードは機能しているように見えますが、問題は、url を設定してテクスチャを再初期化した後、videoSphere のテクスチャが白くなることです。新しいビデオが読み込まれ、新しいビデオの音声が聞こえることはわかりますが、シーンには白いテクスチャしか表示されません。 ここで出力を参照してください
GvrVideoPlayerTexture の重要なステップが欠落しているか、シーンのレンダリングに使用される StereoPanoSphereMaterial を更新するための追加の呼び出しが欠落しているかどうか疑問に思っています。この SDK はかなり新しく、それについて書いている人はあまりいないようです。