萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> ios >> IOS開發:Unity3D 兩種方式播放游戲視頻

IOS開發:Unity3D 兩種方式播放游戲視頻

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

IOS開發:Unity3D 兩種方式播放游戲視頻 三聯

  使用對象拖拽的形式為Mov Texture對象賦值,那麼在腳本中就能直接使用它了,我們看看Test.cs腳本。

  Test.cs

  [代碼]c#/cpp/oc代碼:

01 using UnityEngine; 02 using System.Collections; 03   04 public class Test: MonoBehaviour 05 { 06   07 //電影紋理 08 public MovieTexture movTexture; 09   10 void Start() 11 { 12 //設置當前對象的主紋理為電影紋理 13 renderer.material.mainTexture = movTexture; 14 //設置電影紋理播放模式為循環 15 movTexture.loop = true; 16 } 17   18 void OnGUI() 19 { 20 if(GUILayout.Button("播放/繼續")) 21 { 22 //播放/繼續播放視頻 23 if(!movTexture.isPlaying) 24 { 25 movTexture.Play(); 26 } 27   28 } 29   30 if(GUILayout.Button("暫停播放")) 31 { 32 //暫停播放 33 movTexture.Pause(); 34 } 35   36 if(GUILayout.Button("停止播放")) 37 { 38 //停止播放 39 movTexture.Stop(); 40 } 41 } 42 }

  如下圖所示,點擊按鈕後輕松的實現播放、暫停、停止操作。默認視頻大小大家可在編輯器直接縮放Plane對象平面,而如果需要在游戲運行中動態的縮放平面使用方法:

  [代碼]c#/cpp/oc代碼:

1 transform.localScale = new Vector(1,1,1);

  模型默認縮放系數為1,這裡可以調節平面X、Y、Z三個方向的縮放系數,平面的大小會隨之改變,對應視頻的大小也會隨之改變。

  第二種播放視頻的方式基於GUI。大家可以把剛剛創建的Plane對象以及世界定向光刪除,直接將腳本綁定在攝像機對象中即可,接著我們簡單的修改一下剛剛的游戲腳本。

  Test.cs

  [代碼]c#/cpp/oc代碼:

01 using UnityEngine; 02 using System.Collections; 03   04 public class Test: MonoBehaviour 05 { 06   07 //電影紋理 08 public MovieTexture movTexture; 09   10 void Start() 11 { 12 //設置電影紋理播放模式為循環 13 movTexture.loop = true; 14 } 15   16 void OnGUI() 17 { 18 //繪制電影紋理 19 GUI.DrawTexture (new Rect (0,0, Screen.width, Screen.height),movTexture,ScaleMode.StretchToFill); 20   21 if(GUILayout.Button("播放/繼續")) 22 { 23 //播放/繼續播放視頻 24 if(!movTexture.isPlaying) 25 { 26 movTexture.Play(); 27 } 28   29 } 30   31 if(GUILayout.Button("暫停播放")) 32 { 33 //暫停播放 34 movTexture.Pause(); 35 } 36   37 if(GUILayout.Button("停止播放")) 38 { 39 //停止播放 40 movTexture.Stop(); 41 } 42 } 43   44 }

  在 GUI中播放視頻的原理是直接通過GUI調用DrawTexture方法,這裡和繪制貼圖很想了吧嘿嘿~ 目前播放視頻的大小是屏幕的寬高,如果想動態的修改視頻的寬或高直接修改new Rect() 視頻顯示區域即可,如下圖所示,視頻已經滿滿的填充在整個GUI中啦。怎麼樣Unity中播放視頻簡單吧?

copyright © 萬盛學電腦網 all rights reserved