2020/06/03更新
此為Unity 5x版本的方法
新版請使用Video Player Component
===============================================================
*最後更新時間2016/05/30
此教學為使用Plane播放,若要使用UGUI請看Unity_C#_開頭動畫的製作
Unity支援的影片格式有: .mov、.mpg、.mpeg、.mp4、.avi、.asf
播放影片是使用的MovieTexture為Texture的子類別,與貼圖非常相近,
如影片含音頻會自動生成audio文件,如沒音頻就無生成。
本文將教學:
Unity播放影片(含音軌)
----------------------------------------------------------------------------------------------------------
本教學使用的影片為.mov檔,需要安裝Quicktime,
如果電腦裡沒有quicktime,可到下列網址下載(安裝完需重新開啟Unity):
http://www.apple.com/tw/quicktime/
1.先在場景中新增一個Plane,把Main Camera對準它。
2.直接把你的影片檔拖曳至Unity Asset視窗,或在檔案管理員中直接加入(需等待一段時間)。

3.這時就會產生一個MovieTexture了,
如果你的影片含有音軌,可以展開看到Audio Source。
4.這時你可以設置你的MovieTexture品質,調越高容量越大和載入時間越長。
依需求調整。
5.這時對Asset視窗案右鍵,產生Material。
設定其Shader,在此設定為Legacy Shaders-Self-Illumin-Specular
此設定適合用來當作電視螢幕,你也可以設置其他Shader試試看。

6.把你的MovieTexture拖曳到如圖位置。

7.這時可以把Material和Audio Source拖曳到Plane的Component裡。
此範例不需要Play On Awake(載入場景時自動撥放),故取消勾選。

8.這時進入腳本階段,新增一個C#腳本,開始撰寫腳本如下。

解釋程式碼:
public MovieTexture movTexture;
//宣告公開變數電影材質,設為公開為了之後拖曳
private AudioSource movAudio;
//設定影片音軌
GetComponent<Renderer>().material.mainTexture = movTexture;
//設置主要材質為movTexture
movTexture.loop = true;
//movTexture是否重複撥放
movAudio = GetComponent<AudioSource>();
//設置movAudio變數為物件之AudioSource
if (Input.GetKeyDown(KeyCode.A) && movTexture.isPlaying == false)
//如果鍵盤A被按下且movTexture正在撥放為否時
GetComponent<AudioSource>().Play();
//這一段被註解掉,因為有為AudioSource設變數movAudio,如果你不想設置變數可以直接 使用此程式碼
Play(); Pause(); Stop(); //字面上的意思
如果需要複製可複製以下程式碼
---------------------------------以下附上完整程式碼--------------------------------------------------------------
public MovieTexture movTexture; //電影材質
private AudioSource movAudio; //影片音軌
void Start()
{
GetComponent<Renderer>().material.mainTexture = movTexture;
movTexture.loop = true;
movAudio = GetComponent<AudioSource>();
}
void Update() {
if (Input.GetKeyDown(KeyCode.A) && movTexture.isPlaying == false)
{
//GetComponent<AudioSource>().Play();
movTexture.Play();
movAudio.Play();
}
if (Input.GetKeyDown(KeyCode.S))
{
//GetComponent<AudioSource>().Pause();
movTexture.Pause();
movAudio.Pause();
}
if (Input.GetKeyDown(KeyCode.D))
{
//GetComponent<AudioSource>().Stop();
movTexture.Stop();
movAudio.Stop();
}
}
---------------------------------以上附上完整程式碼------------------------------------------------------------9.把腳本掛在Plane上,再把MovieTexture拖曳到程式碼的公開區。

10.這時你可以開始測試你的影片是否能撥放了!

HI 感謝教學 請問你 人 在台北 台中?
回覆刪除新竹喔
刪除