using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Video; public class Tutorial : MonoBehaviour { //Raw Image to Show Video Images [Assign from the Editor] public RawImage image; public VideoClip count_tut; public VideoClip set_tut; public VideoClip add_tut; private VideoPlayer vp; private VideoSource videoSource; //Audio private AudioSource audioSource; // Update is called once per frame private void Start() { StartCoroutine(playTutorial()); } IEnumerator playTutorial() { //Add VideoPlayer to the GameObject vp = gameObject.AddComponent(); //Add AudioSource audioSource = gameObject.AddComponent(); //Disable Play on Awake for both Video and Audio vp.playOnAwake = false; audioSource.playOnAwake = false; vp.source = VideoSource.VideoClip; vp.audioOutputMode = VideoAudioOutputMode.AudioSource; //Assign the Audio from Video to AudioSource to be played vp.EnableAudioTrack(0, true); vp.SetTargetAudioSource(0, audioSource); //We want to play from video clip not from url vp.clip = count_tut; if (Gamestate.Instance.getGame() == "Set") { vp.clip = set_tut; } if (Gamestate.Instance.getGame() == "Add") { vp.clip = add_tut; } //Set video To Play then prepare Audio to prevent Buffering vp.Prepare(); //Wait until video is prepared while (!vp.isPrepared) { Debug.Log("Preparing Video"); yield return null; } Debug.Log("Done Preparing Video"); //Assign the Texture from Video to RawImage to be displayed image.texture = vp.texture; //Play Video vp.Play(); //Play Sound audioSource.Play(); Debug.Log("Playing Video"); while (vp.isPlaying) { Debug.LogWarning("Video Time: " + Mathf.FloorToInt((float)vp.time)); yield return null; } image.GetComponent().SetBool("fadeout",true);//.Play("tutorial2", -1, 0f); yield return new WaitForSeconds(0.8f); Debug.Log("Done Playing Video"); DontDestroyOnLoad(Gamestate.Instance); Gamestate.Instance.startGame(); } }