今天我們來做一個在Unity3D中實現視頻播放的實例。該文章出自【狗刨學習網】
首先,Unity支持的播放視頻格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我們只需要將這些文件放在項目文件夾裏就可實現視頻文件的導入。在Window系統下,我們需要在蘋果公司的QuickTime軟件下才能順利地將視頻文件導入Unity。如果視頻文件含有音頻文件,那麼在導入Unity後會生成相應的音頻文件。在Unity3D中實現視頻播放的方法有兩種:基於紋理貼圖、基於GUI。我們下面分別來講解:
1、基於紋理貼圖
-
using UnityEngine;
-
using System.Collections;
-
-
public class MovieByTexture : MonoBehaviour {
-
-
//電影紋理貼圖
-
public MovieTexture mMovie;
-
//電影音頻源
-
private AudioSource mAudio;
-
-
//媒體信息定義
-
private string mediaName;//媒體名稱
-
private string mediaLength;//媒體長度
-
-
void Start ()
-
{
-
mAudio=GetComponent();
-
//設置當前對象的主紋理爲電影紋理貼圖
-
renderer.material.mainTexture=mMovie;
-
//設置電影紋理播放模式爲循環
-
mMovie.loop=true;
-
//開始播放電影
-
mMovie.Play();
-
//開始播放音樂
-
mAudio.Play();
-
}
-
-
void Update ()
-
{
-
//在這裏更新媒體信息
-
mediaName=mMovie.name;
-
mediaLength=mMovie.duration.ToString();
-
}
-
-
void OnGUI()
-
{
-
//播放控制
-
if(GUILayout.Button("播放",GUILayout.Height(30)))
-
{
-
mMovie.Play();
-
mAudio.Play();
-
}
-
//暫停控制
-
if(GUILayout.Button("暫停",GUILayout.Height(30)))
-
{
-
mMovie.Pause();
-
mAudio.Pause();
-
}
-
//停止控制
-
if(GUILayout.Button("停止",GUILayout.Height(30)))
-
{
-
mMovie.Stop();
-
mAudio.Stop();
-
}
-
-
//繪製文本信息
-
GUILayout.Label("媒體名稱:"+mediaName,GUILayout.Height(30));
-
GUILayout.Label("媒體長度:"+mediaLength,GUILayout.Height(30)); ;
-
}
-
}
複製代碼
2、基於GUI
-
using UnityEngine;
-
using System.Collections;
-
-
public class MovieByGUI : MonoBehaviour {
-
-
//電影紋理貼圖
-
public MovieTexture mMovie;
-
//電影音頻源
-
private AudioSource mAudio;
-
-
//媒體信息定義
-
private string mediaName;//媒體名稱
-
private string mediaLength;//媒體長度
-
-
void Start ()
-
{
-
mAudio=GetComponent();
-
//設置當前對象的主紋理爲電影紋理貼圖
-
renderer.material.mainTexture=mMovie;
-
//設置電影紋理播放模式爲循環
-
mMovie.loop=true;
-
//開始播放電影
-
mMovie.Play();
-
//開始播放音樂
-
mAudio.Play();
-
}
-
-
void Update ()
-
{
-
//在這裏更新媒體信息
-
mediaName=mMovie.name;
-
mediaLength=mMovie.duration.ToString();
-
}
-
-
void OnGUI()
-
{
-
//繪製電影紋理貼圖
-
GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),mMovie);
-
//播放控制
-
if(GUILayout.Button("播放",GUILayout.Height(30)))
-
{
-
mMovie.Play();
-
mAudio.Play();
-
}
-
//暫停控制
-
if(GUILayout.Button("暫停",GUILayout.Height(30)))
-
{
-
mMovie.Pause();
-
mAudio.Pause();
-
}
-
//停止控制
-
if(GUILayout.Button("停止",GUILayout.Height(30)))
-
{
-
mMovie.Stop();
-
mAudio.Stop();
-
}
-
-
//繪製文本信息
-
GUILayout.Label("媒體名稱:"+mediaName,GUILayout.Height(30));
-
GUILayout.Label("媒體長度:"+mediaLength,GUILayout.Height(30)); ;
-
}
-
}
-
複製代碼
代碼十分簡單,這裏不再贅述了。我們可以直接在場景中創建一個Plane,然後將腳本拖放到該對象上,再指定了音頻文件、視頻文件後就可以實現視頻的播放了。最終效果如圖所示:
今天的內容就是這樣了,最近不知道該寫點什麼了,大家想了解什麼內容的話,可以給我留言啊。