在Unity中加载外部视频
可能是Unity的一个官方BUG,在利用WWW记载视频文件的时候不能加载成功,提示 “MoviePlayback::LoadMovieData got NULL!
UnityEngine.WWW:get_movie()” 。 但是当build up后,运行exe文件便没有这样的问题。
在这次的项目中,通过一个文件对话框选择一个视频文件后,利用WWW加载视频文件,视频文件的格式选用的是.ogv的,网上都说其他的不行,貌似是不行,没有试过,但是。
WWW www = new WWW ("file:///" + filename);
其中 “file:///”是不可少的,开始的时候我未加上它,视频文件没能加载成功,加上后,视频文件就能加载成功了。,当然是built up后运行exe文件的时候可以成功。
其中下面是我加载视频文件的函数
<span style="white-space:pre"> </span>IEnumerator WaitLoadVideo(string filename)
{
if(((MovieTexture)(videoObj.GetComponent<Renderer> ().material.mainTexture)).isPlaying)
((MovieTexture)(videoObj.GetComponent<Renderer> ().material.mainTexture)).Stop ();
WWW www = new WWW ("file:///" + filename);
while (!www.isDone) {
yield return null;
}
text.GetComponent<Text> ().text = "1-"+ DataManager.Instance.allVideos.Count.ToString();
DataManager.Instance.allVideos.Add (www.movie);
Renderer rend;
rend = videoObj.GetComponent<Renderer> ();
videoIndex = DataManager.Instance.allVideos.Count - 1;
rend.material.SetTexture("_MainTex", DataManager.Instance.allVideos[videoIndex]);
yield return new WaitForSeconds (1.0f);
}