Unity支持视频作为物体表面的纹理。纹理一般为物体表面的图像。同时Unity支持不同的视频格式,其中视频资源一般会占用较大的存储空间,推荐使用的格式是OGV(Ogg Theora)。
- 首先将视频资源导入到Unity的Assets文件夹下。导入后可以在Inspector面板下方进行预览视频。
- 然后在Hierarchy面板上创建一个Plane对象作为播放视频纹理的物体。
- 为Plane对象添加材质球,在Project面板:右键 > Create > Material,创建Material对象并命名为MovieMaterial,接着在Inspector面板为材质选择Shader为Unlit/Texture,这样MovieTexture在显示过程中不会受到光照的影响,将材质球MovieMaterial赋予Plane对象。
- 为Plane对象添加AudioSource组件,用于播放视频纹理发出的声音。
- 为Plane对象编写用于加载并播放视频纹理的脚本。
using UnityEngine; using System.Collections; public class PlayMovie:MonoBehaviour { // 声明用于获取视频纹理的MovieTexture字段Movie. public MovieTexture Movie = null; // 声明用于获取视频的音频剪辑的AudioSource. private AudioSource audios; void Start(){ // 获取PLane对象的MeshRenderer组件. MeshRenderer meshrenderer = GetComponent<MeshRenderer>(); // 将MeshRenderer组件的纹理材质替换为MovieTexture类型的视频. meshrenderer.material.mainTexture = Movie; audios = GetComponent<AudioSource>(); // 将MovieTexture的音频剪辑赋值给Audio Source组件的clip audios.clip = Movie.audioClip; audios.spatialBlend = 0; } // 按下空格键进行播放控制. void Update(){ if (Input.GetKeyDown (KeyCode.Space) && !Movie.isPlaying && !audios.isPlaying) { Movie.Play (); audios.Play (); } else if (Input.GetKeyDown(KeyCode.Space) && Movie.isPlaying && audios.isPlaying){ Movie.Pause (); audios.Pause(); } } }