- Home /
I made an intro video for my game but when this video ends, how do I go to the scene with the menu?
I made an intro video for my game but when this video ends, how do I go to the scene with the menu?
Video Player Script...
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Video;
public class StreamVideo : MonoBehaviour {
public RawImage image;
public VideoClip videoToPlay;
private VideoPlayer videoPlayer;
private VideoSource videoSource;
private AudioSource audioSource;
// Use this for initialization
void Start()
{
Application.runInBackground = true;
StartCoroutine(playVideo());
}
IEnumerator playVideo()
{
//Add VideoPlayer to the GameObject
videoPlayer = gameObject.AddComponent<VideoPlayer>();
//Add AudioSource
audioSource = gameObject.AddComponent<AudioSource>();
//Disable Play on Awake for both Video and Audio
videoPlayer.playOnAwake = false;
audioSource.playOnAwake = false;
audioSource.Pause();
//We want to play from video clip not from url
videoPlayer.source = VideoSource.VideoClip;
// Vide clip from Url
//videoPlayer.source = VideoSource.Url;
//videoPlayer.url = "http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4";
//Set Audio Output to AudioSource
videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
//Assign the Audio from Video to AudioSource to be played
videoPlayer.EnableAudioTrack(0, true);
videoPlayer.SetTargetAudioSource(0, audioSource);
//Set video To Play then prepare Audio to prevent Buffering
videoPlayer.clip = videoToPlay;
videoPlayer.Prepare();
//Wait until video is prepared
WaitForSeconds waitTime = new WaitForSeconds(1);
while (!videoPlayer.isPrepared)
{
Debug.Log("Preparing Video");
//Prepare/Wait for 5 sceonds only
yield return waitTime;
//Break out of the while loop after 5 seconds wait
break;
}
Debug.Log("Done Preparing Video");
//Assign the Texture from Video to RawImage to be displayed
image.texture = videoPlayer.texture;
//Play Video
videoPlayer.Play();
//Play Sound
audioSource.Play();
Debug.Log("Playing Video");
while (videoPlayer.isPlaying)
{
Debug.LogWarning("Video Time: " + Mathf.FloorToInt((float)videoPlayer.time));
yield return null;
}
Debug.Log("Done Playing Video");
}
// Update is called once per frame
void Update()
{
}
}
And now when the video intro of the game ends, how do they go with the scene of the menu?
Answer by crossmedia411 · Jul 18, 2017 at 06:03 PM
You need to add the videoPlayer.loopPointReached to the Start method. When the end of the video is reached, it will trigger the EndReached function and call your scene.
void Start(){
videoPlayer.loopPointReached += EndReached;
}
void EndReached(UnityEngine.Video.VideoPlayer vp)
{
UnityEngine.SceneManagement.SceneManager.LoadScene (“NewScene”);
}
Your answer
Follow this Question
Related Questions
Streaming Video on iOS from Clould 0 Answers
Stream live video feed into Unity3D 0 Answers
Can i make a video call in unity? if there is a solution please tell me how 0 Answers
Switching Videoclips for VideoPlayer in Unity degrades FPS drastically 0 Answers
How to fix flicker with VideoPlayer/Skybox/XR setup 1 Answer