Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需將對應的視頻文件拖拽入Project視圖即可,它會自動生成對應的MovieTexture對象
Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需將對應的視頻文件拖拽入Project視圖即可,它會自動生成對應的MovieTexture對象。如下圖所示,MOMO將default_video.mp4拖拽入Project視圖中,如果視頻中含有音頻的話會對應生成audio文件,因為我的視頻沒有音頻所以沒有生成 audio文件。接著在Hierarchy視圖中創建一個Plane對象視頻將在它之上播放,Directional light世界定向光用于照亮整個游戲場景,最后Main Camera對象將直直的照射在Plane對象。

使用對象拖拽的形式為Mov Texture對象賦值,那么在腳本中就能直接使用它了,我們看看Test.cs腳本。
Test.cs
[代碼]c#/cpp/oc代碼:
| 02 |
using System.Collections; |
| 04 |
public class Test: MonoBehaviour |
| 08 |
public MovieTexture movTexture; |
| 13 |
renderer.material.mainTexture = movTexture; |
| 15 |
movTexture.loop = true; |
| 20 |
if(GUILayout.Button("播放/繼續")) |
| 23 |
if(!movTexture.isPlaying) |
| 30 |
if(GUILayout.Button("暫停播放")) |
| 36 |
if(GUILayout.Button("停止播放")) |
如下圖所示,點擊按鈕后輕松的實現播放、暫停、停止操作。默認視頻大小大家可在編輯器直接縮放Plane對象平面,而如果需要在游戲運行中動態的縮放平面使用方法:
[代碼]c#/cpp/oc代碼:
| 1 |
transform.localScale = new Vector(1,1,1); |
模型默認縮放系數為1,這里可以調節平面X、Y、Z三個方向的縮放系數,平面的大小會隨之改變,對應視頻的大小也會隨之改變。

第二種播放視頻的方式基于GUI。大家可以把剛剛創建的Plane對象以及世界定向光刪除,直接將腳本綁定在攝像機對象中即可,接著我們簡單的修改一下剛剛的游戲腳本。
Test.cs
[代碼]c#/cpp/oc代碼:
| 02 |
using System.Collections; |
| 04 |
public class Test: MonoBehaviour |
| 08 |
public MovieTexture movTexture; |
| 13 |
movTexture.loop = true; |
| 19 |
GUI.DrawTexture (new Rect (0,0, Screen.width, Screen.height),movTexture,ScaleMode.StretchToFill); |
| 21 |
if(GUILayout.Button("播放/繼續")) |
| 24 |
if(!movTexture.isPlaying) |
| 31 |
if(GUILayout.Button("暫停播放")) |
| 37 |
if(GUILayout.Button("停止播放")) |
在 GUI中播放視頻的原理是直接通過GUI調用DrawTexture方法,這里和繪制貼圖很想了吧嘿嘿~ 目前播放視頻的大小是屏幕的寬高,如果想動態的修改視頻的寬或高直接修改new Rect() 視頻顯示區域即可,如下圖所示,視頻已經滿滿的填充在整個GUI中啦。怎么樣Unity中播放視頻簡單吧? 哇咔咔~
