想通过Unity3D播放游戏视频主要有两种方式。第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,下面就给大家介绍下Unity中播放视频的这两种方式。
Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视频文件拖拽入Project视图即可,它会自动生成对应的MovieTexture对象。第一种方式:将default_video.mp4拖拽入Project视图中,如果视频中含有音频的话会对应生成audio文件,因为本视频没有音频所以没有生成 audio文件。接着在Hierarchy视图中创建一个Plane对象视频将在它之上播放,Directional light世界定向光用于照亮整个游戏场景,最后Main Camera对象将直直的照射在Plane对象。
使用对象拖拽的形式为Mov Texture对象赋值,在脚本中就能直接使用它了,我们看看Test.cs脚本。
Test.cs
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("暂停播放")) <