程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Unity3D游戲開發之在Unity3D中實現視頻播放

Unity3D游戲開發之在Unity3D中實現視頻播放

編輯:C#入門知識

       大家好,我是秦元培,歡迎大家關注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。

      今天我們來做一個在Unity3D中實現視頻播放的實例。首先,Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我們只需要將這些文件放在項目文件夾裡就可實現視頻文件的導入。在Window系統下,我們需要在蘋果公司的QuickTime軟件下才能順利地將視頻文件導入Unity。如果視頻文件含有音頻文件,那麼在導入Unity後會生成相應的音頻文件。在Unity3D中實現視頻播放的方法有兩種:基於紋理貼圖、基於GUI。我們下面分別來講解:

       1、基於紋理貼圖

view plaincopyprint?在CODE上查看代碼片派生到我的代碼片

 
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class MovieByTexture : MonoBehaviour {  
  5.       
  6.     //電影紋理貼圖  
  7.     public MovieTexture mMovie;  
  8.     //電影音頻源  
  9.     private AudioSource mAudio;  
  10.       
  11.     //媒體信息定義  
  12.     private string mediaName;//媒體名稱  
  13.     private string mediaLength;//媒體長度  
  14.       
  15.     void Start ()   
  16.     {  
  17.       mAudio=GetComponent<AudioSource>();  
  18.       //設置當前對象的主紋理為電影紋理貼圖  
  19.       renderer.material.mainTexture=mMovie;  
  20.       //設置電影紋理播放模式為循環  
  21.       mMovie.loop=true;  
  22.       //開始播放電影  
  23.       mMovie.Play();  
  24.       //開始播放音樂  
  25.       mAudio.Play();  
  26.     }  
  27.       
  28.     void Update ()   
  29.     {  
  30.       //在這裡更新媒體信息  
  31.       mediaName=mMovie.name;  
  32.       mediaLength=mMovie.duration.ToString();  
  33.     }  
  34.       
  35.     void OnGUI()  
  36.     {  
  37.       //播放控制  
  38.       if(GUILayout.Button("播放",GUILayout.Height(30)))  
  39.       {  
  40.         mMovie.Play();  
  41.         mAudio.Play();  
  42.       }  
  43.       //暫停控制  
  44.       if(GUILayout.Button("暫停",GUILayout.Height(30)))  
  45.       {  
  46.         mMovie.Pause();  
  47.         mAudio.Pause();  
  48.       }  
  49.       //停止控制  
  50.       if(GUILayout.Button("停止",GUILayout.Height(30)))  
  51.       {  
  52.         mMovie.Stop();  
  53.         mAudio.Stop();  
  54.       }  
  55.           
  56.       //繪制文本信息  
  57.       GUILayout.Label("媒體名稱:"+mediaName,GUILayout.Height(30));  
  58.       GUILayout.Label("媒體長度:"+mediaLength,GUILayout.Height(30));    ;  
  59.     }  
  60. }  

 

 

       2、基於GUI

 

[csharp] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片  
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class MovieByGUI : MonoBehaviour {  
  5.       
  6.     //電影紋理貼圖  
  7.     public MovieTexture mMovie;  
  8.     //電影音頻源  
  9.     private AudioSource mAudio;  
  10.       
  11.     //媒體信息定義  
  12.     private string mediaName;//媒體名稱  
  13.     private string mediaLength;//媒體長度  
  14.       
  15.     void Start ()   
  16.     {  
  17.       mAudio=GetComponent<AudioSource>();  
  18.       //設置當前對象的主紋理為電影紋理貼圖  
  19.       renderer.material.mainTexture=mMovie;  
  20.       //設置電影紋理播放模式為循環  
  21.       mMovie.loop=true;  
  22.       //開始播放電影  
  23.       mMovie.Play();  
  24.       //開始播放音樂  
  25.       mAudio.Play();  
  26.     }  
  27.       
  28.     void Update ()   
  29.     {  
  30.       //在這裡更新媒體信息  
  31.       mediaName=mMovie.name;  
  32.       mediaLength=mMovie.duration.ToString();  
  33.     }  
  34.       
  35.     void OnGUI()  
  36.     {  
  37.       //繪制電影紋理貼圖  
  38.       GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),mMovie);  
  39.       //播放控制  
  40.       if(GUILayout.Button("播放",GUILayout.Height(30)))  
  41.       {  
  42.         mMovie.Play();  
  43.         mAudio.Play();  
  44.       }  
  45.       //暫停控制  
  46.       if(GUILayout.Button("暫停",GUILayout.Height(30)))  
  47.       {  
  48.         mMovie.Pause();  
  49.         mAudio.Pause();  
  50.       }  
  51.       //停止控制  
  52.       if(GUILayout.Button("停止",GUILayout.Height(30)))  
  53.       {  
  54.         mMovie.Stop();  
  55.         mAudio.Stop();  
  56.       }  
  57.           
  58.       //繪制文本信息  
  59.       GUILayout.Label("媒體名稱:"+mediaName,GUILayout.Height(30));  
  60.       GUILayout.Label("媒體長度:"+mediaLength,GUILayout.Height(30));    ;  
  61.     }  
  62. }  


       代碼十分簡單,這裡不再贅述了。我們可以直接在場景中創建一個Plane,然後將腳本拖放到該對象上,再指定了音頻文件、視頻文件後就可以實現視頻的播放了。最終效果如圖所示:

 

         今天的內容就是這樣了,最近不知道該寫點什麼了,大家想了解什麼內容的話,可以給我留言啊。  

         喜歡我的博客請記住我的名字:秦元培,我的博客地址是:blog.csdn.net/qinyuanpei

         轉載請注明出處,本文作者:秦元培,本文出處:http://blog.csdn.net/qinyuanpei/article/details/24130347

     

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved