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視圖中創(chuàng)建一個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("播放/繼續(xù)")) |
23 |
if(!movTexture.isPlaying) |
30 |
if(GUILayout.Button("暫停播放")) |
36 |
if(GUILayout.Button("停止播放")) |
如下圖所示,點擊按鈕后輕松的實現(xiàn)播放、暫停、停止操作。默認視頻大小大家可在編輯器直接縮放Plane對象平面,而如果需要在游戲運行中動態(tài)的縮放平面使用方法:
[代碼]c#/cpp/oc代碼:
1 |
transform.localScale = new Vector(1,1,1); |
模型默認縮放系數(shù)為1,這里可以調節(jié)平面X、Y、Z三個方向的縮放系數(shù),平面的大小會隨之改變,對應視頻的大小也會隨之改變。

第二種播放視頻的方式基于GUI。大家可以把剛剛創(chuàng)建的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("播放/繼續(xù)")) |
24 |
if(!movTexture.isPlaying) |
31 |
if(GUILayout.Button("暫停播放")) |
37 |
if(GUILayout.Button("停止播放")) |
在 GUI中播放視頻的原理是直接通過GUI調用DrawTexture方法,這里和繪制貼圖很想了吧嘿嘿~ 目前播放視頻的大小是屏幕的寬高,如果想動態(tài)的修改視頻的寬或高直接修改new Rect() 視頻顯示區(qū)域即可,如下圖所示,視頻已經(jīng)滿滿的填充在整個GUI中啦。怎么樣Unity中播放視頻簡單吧? 哇咔咔~
