Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需將對(duì)應(yīng)的視頻文件拖拽入Project視圖即可,它會(huì)自動(dòng)生成對(duì)應(yīng)的MovieTexture對(duì)象
Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需將對(duì)應(yīng)的視頻文件拖拽入Project視圖即可,它會(huì)自動(dòng)生成對(duì)應(yīng)的MovieTexture對(duì)象。如下圖所示,MOMO將default_video.mp4拖拽入Project視圖中,如果視頻中含有音頻的話(huà)會(huì)對(duì)應(yīng)生成audio文件,因?yàn)槲业囊曨l沒(méi)有音頻所以沒(méi)有生成 audio文件。接著在Hierarchy視圖中創(chuàng)建一個(gè)Plane對(duì)象視頻將在它之上播放,Directional light世界定向光用于照亮整個(gè)游戲場(chǎng)景,最后Main Camera對(duì)象將直直的照射在Plane對(duì)象。

使用對(duì)象拖拽的形式為Mov Texture對(duì)象賦值,那么在腳本中就能直接使用它了,我們看看Test.cs腳本。
Test.cs
[代碼]c#/cpp/oc代碼:
02 |
using System.Collections; |
04 |
public class Test: MonoBehaviour |
08 |
public MovieTexture movTexture; |
12 |
//設(shè)置當(dāng)前對(duì)象的主紋理為電影紋理 |
13 |
renderer.material.mainTexture = movTexture; |
14 |
//設(shè)置電影紋理播放模式為循環(huán) |
15 |
movTexture.loop = true; |
20 |
if(GUILayout.Button("播放/繼續(xù)")) |
23 |
if(!movTexture.isPlaying) |
30 |
if(GUILayout.Button("暫停播放")) |
36 |
if(GUILayout.Button("停止播放")) |
如下圖所示,點(diǎn)擊按鈕后輕松的實(shí)現(xiàn)播放、暫停、停止操作。默認(rèn)視頻大小大家可在編輯器直接縮放Plane對(duì)象平面,而如果需要在游戲運(yùn)行中動(dòng)態(tài)的縮放平面使用方法:
[代碼]c#/cpp/oc代碼:
1 |
transform.localScale = new Vector(1,1,1); |
模型默認(rèn)縮放系數(shù)為1,這里可以調(diào)節(jié)平面X、Y、Z三個(gè)方向的縮放系數(shù),平面的大小會(huì)隨之改變,對(duì)應(yīng)視頻的大小也會(huì)隨之改變。

第二種播放視頻的方式基于GUI。大家可以把剛剛創(chuàng)建的Plane對(duì)象以及世界定向光刪除,直接將腳本綁定在攝像機(jī)對(duì)象中即可,接著我們簡(jiǎn)單的修改一下剛剛的游戲腳本。
Test.cs
[代碼]c#/cpp/oc代碼:
02 |
using System.Collections; |
04 |
public class Test: MonoBehaviour |
08 |
public MovieTexture movTexture; |
12 |
//設(shè)置電影紋理播放模式為循環(huán) |
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中播放視頻的原理是直接通過(guò)GUI調(diào)用DrawTexture方法,這里和繪制貼圖很想了吧嘿嘿~ 目前播放視頻的大小是屏幕的寬高,如果想動(dòng)態(tài)的修改視頻的寬或高直接修改new Rect() 視頻顯示區(qū)域即可,如下圖所示,視頻已經(jīng)滿(mǎn)滿(mǎn)的填充在整個(gè)GUI中啦。怎么樣Unity中播放視頻簡(jiǎn)單吧? 哇咔咔~
