Unityで、下のようなスクリプトを書きました。
内容は左右の矢印キーを押すと、対応した動画が流れるといったものです(一応他の処理もあり)。ネプリーグのトロッコアドベンチャーのようなものなのですが、ここに付け足して、右の矢印キーを押したら正解の道で、2問目、3問目とまた同じように以降別の動画で、この処理を繰り返すようにしたいです。説明不十分ですが、ご不明な点がありましたら自分もできる限り細かく説明するので、どのようにすれば良いかを教えていただきたいです。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.Video; 5 6public class VideoChangeScript : MonoBehaviour 7{ 8 // インスペクター上でVideoPlayerを指定 9 public VideoPlayer VideoPlayer1; 10 public VideoPlayer VideoPlayer2; 11 public VideoPlayer VideoPlayer3; 12 13 Renderer videoPlayer1Renderer; 14 Renderer videoPlayer2Renderer; 15 Renderer videoPlayer3Renderer; 16 17 void Start() 18 { 19 videoPlayer1Renderer = VideoPlayer1.GetComponent<Renderer>(); 20 videoPlayer2Renderer = VideoPlayer2.GetComponent<Renderer>(); 21 videoPlayer3Renderer = VideoPlayer3.GetComponent<Renderer>(); 22 23 videoPlayer1Renderer.enabled = true; 24 videoPlayer2Renderer.enabled = false; 25 videoPlayer3Renderer.enabled = false; 26 27 VideoPlayer1.Play(); 28 VideoPlayer2.Stop(); 29 VideoPlayer3.Stop(); 30 } 31 32 void Update() 33 { 34 if (Input.GetKeyDown (KeyCode.RightArrow)) { 35 StartCoroutine (changeCoroutine ()); 36 } else if (Input.GetKeyDown (KeyCode.LeftArrow)) { 37 StartCoroutine (changeCoroutine1 ()); 38 } 39 } 40 41 IEnumerator changeCoroutine() 42 { 43 // ロード開始 44 VideoPlayer2.Prepare(); 45 46 // ロード完了まで待機 47 while (!VideoPlayer2.isPrepared) 48 { 49 yield return null; 50 } 51 52 VideoPlayer2.Play(); 53 54 // 再生するまで待機 55 while (!VideoPlayer2.isPlaying) 56 { 57 yield return null; 58 } 59 yield return null; 60 61 videoPlayer2Renderer.enabled = true; 62 63 videoPlayer1Renderer.enabled = false; 64 VideoPlayer1.Stop(); 65 } 66 IEnumerator changeCoroutine1() 67 { 68 // ロード開始 69 VideoPlayer3.Prepare(); 70 71 // ロード完了まで待機 72 while (!VideoPlayer3.isPrepared) 73 { 74 yield return null; 75 } 76 77 VideoPlayer3.Play(); 78 79 // 再生するまで待機 80 while (!VideoPlayer3.isPlaying) 81 { 82 yield return null; 83 } 84 yield return null; 85 86 videoPlayer3Renderer.enabled = true; 87 88 videoPlayer1Renderer.enabled = false; 89 VideoPlayer1.Stop(); 90 } 91}
回答1件
あなたの回答
tips
プレビュー