近日接到公司通知,对公司想学Unity3D游戏引擎的同仁进行专业培训,老大就挑了一些项目中时常用到的知识点,分给我和另一个主程备课,定时进行培训,然后就有了现在的这篇文章了,有不足的地方还请大家指正,先谢谢啦!
本节讲解的是Unity3D中的视频播放功能:
在Unity3D中播放视频有两种方式:一中是在GUI上直接播放,另一种是以GameObject为载体播放。
一、GUI上直接播放视频的方式:
有脚本如下:GuiPlay.cs
public class GuiPlay : MonoBehaviour {
public MovieTexture g_MTMov;
void Start () {
//设置音频
audio.clip = g_MTMov.audioClip;
}
void OnGUI()
{
//绘制电影纹理
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), g_MTMov, ScaleMode.StretchToFill);
if(GUILayout.Button("Play"))
{
if(!g_MTMov.isPlaying)
{
g_MTMov.Play();
audio.Play();
}
}
if (GUILayout.Button("Pause"))
{
if (g_MTMov.isPlaying)
{
g_MTMov.Pause();
audio.Pause();
}
}
if (GUILayout.Button("Stop"))
{
if (g_MTMov.isPlaying)
{
g_MTMov.Stop();
audio.Stop();
}
}
}
}
把此脚本直接拖到MainCamera上,然后拖入视频,如下图:
二、以GameObject为载体播放视频
修改GuiPlay.cs代码
public class GuiPlay : MonoBehaviour {
public MovieTexture g_MTMov;
void Start () {
//在对象中播放时设¦置材质¨
this.renderer.material.mainTexture = g_MTMov;
//设置音频
audio.clip = g_MTMov.audioClip;
}
void OnGUI()
{
if(GUILayout.Button("Play"))
{
if(!g_MTMov.isPlaying)
{
g_MTMov.Play();
audio.Play();
}
}
if (GUILayout.Button("Pause"))
{
if (g_MTMov.isPlaying)
{
g_MTMov.Pause();
audio.Pause();
}
}
if (GUILayout.Button("Stop"))
{
if (g_MTMov.isPlaying)
{
g_MTMov.Stop();
audio.Stop();
}
}
}
}
把此脚本直接拖到GameObject上,然后拖入视频,如下图:
三、注意事项:
1,Unity3D支持的视频格式有:.mov、.mpg、.mpeg、.mp4、.avi和.asf。
可以用格式工场转换视频。
2,Unity3D解码报错,如下图:
PC需要安装QuickTime,安装后重启电脑。
3,视频声音控制
需要添加AudioSource组件和AudioListener组件。
在控制视频播放时同时控制音频即可。
我的Unity3D 是4.3.3版本。
以上就是全部内容了,
如果我写的能帮到你,我将感到很开心,有不足的地方也请指出,我是 “破破”,谢谢!