Unity3D视频播放
Unity能够直接识别的视频格式.mov,.mpg,.mped,.mp4,.avi,.asf
旧版本(MovieTexture)导入的文件不是.ogv通过Unity中的QuickTIme进行转码。.ogv会直接识别
视频播放:
旧版本通过一个Panel,设置MeshRender的Material的MainTexture为一个MovieTexture。
public class TestVideo : MonoBehaviour {
private MeshRenderer meshRenderer;
private AudioSource audioSource;
public MovieTexture videoTexture;
private void Awake()
{
audioSource = GetComponent<AudioSource>();
GetComponent<MeshRenderer>().material.mainTexture = videoTexture;
}
private void OnGUI()
{
if (GUILayout.Button("play"))
{
if (!videoTexture.isPlaying)
{
videoTexture.Play();
audioSource.Play();
}
}
if (GUILayout.Button("Pause"))
{
if (videoTexture.isPlaying)
{
videoTexture.Pause();
audioSource.Pause();
}
}
if (GUILayout.Button("Stop"))
{
if (videoTexture.isPlaying)
{
videoTexture.Stop();
audioSource.Stop();
}
}
}
}
通过OnGUI绘制MovieTexture进行播放
public class TestVideo : MonoBehaviour {
//private MeshRenderer meshRenderer;
private AudioSource audioSource;
public MovieTexture videoTexture;
private void Awake()
{
audioSource = GetComponent<AudioSource>();
//GetComponent<MeshRenderer>().material.mainTexture = videoTexture;
}
private void OnGUI()
{
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), videoTexture, ScaleMode.StretchToFill);
if (GUILayout.Button("play"))
{
if (!videoTexture.isPlaying)
{
videoTexture.Play();
audioSource.Play();
}
}
if (GUILayout.Button("Pause"))
{
if (videoTexture.isPlaying)
{
videoTexture.Pause();
audioSource.Pause();
}
}
if (GUILayout.Button("Stop"))
{
if (videoTexture.isPlaying)
{
videoTexture.Stop();
audioSource.Stop();
}
}
}
}
新版动画系统
private VideoPlayer videoPlayer;
private void Awake()
{
videoPlayer = GetComponent<VideoPlayer>();
}
private void OnGUI()
{
if (GUILayout.Button("Play", GUILayout.Width(100), GUILayout.Height(100)))
{
videoPlayer.Play();
}
}
博客介绍了Unity3D视频播放相关内容。Unity能直接识别.mov、.mp4等多种视频格式,旧版本若导入非.ogv文件需通过QuickTIme转码,.ogv可直接识别。还讲述了旧版本视频播放方法,通过Panel设置MeshRender的Material的MainTexture为MovieTexture,再用OnGUI绘制播放,此外提到新版动画系统。
7436

被折叠的 条评论
为什么被折叠?



