发布时间 : 星期六 文章Unity3D游戏开发之在Unity3D中实现视频播放 - 图文更新完毕开始阅读30d0548bf705cc1755270970
今天我们来做一个在Unity3D中实现视频播放的实例。该文章出自【狗刨学习网】
首先,Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我们只需要将这些文件放在项目文件夹里就可实现视频文件的导入。在Window系统下,我们需要在苹果公司的QuickTime软件下才能顺利地将视频文件导入Unity。如果视频文件含有音频文件,那么在导入Unity后会生成相应的音频文件。在Unity3D中实现视频播放的方法有两种:基于纹理贴图、基于GUI。我们下面分别来讲解: 1、基于纹理贴图
1. 2. 3. 4. 5. 6. 7. 8. 9.
using UnityEngine;
using System.Collections;
public class MovieByTexture : MonoBehaviour {
//电影纹理贴图
public MovieTexture mMovie; //电影音频源
private AudioSource mAudio;
10.
11. //媒体信息定义
12. private string mediaName;//媒体名称 13. private string mediaLength;//媒体长度 14.
15. void Start () 16. {
17. mAudio=GetComponent();
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(\播放\ 39. {
40. mMovie.Play(); 41. mAudio.Play(); 42. }
43. //暂停控制
44. if(GUILayout.Button(\暂停\ 45. {
46. mMovie.Pause(); 47. mAudio.Pause(); 48. }
49. //停止控制
50. if(GUILayout.Button(\停止\ 51. {
52. mMovie.Stop(); 53. mAudio.Stop(); 54. } 55.
56. //绘制文本信息
57. GUILayout.Label(\媒体名称:\ 58. 59. }
GUILayout.Label(\
媒
体
长
度:\
60. }
复制代码 2、基于GUI
1. 2. 3. 4. 5. 6. 7. 8. 9.
using UnityEngine;
using System.Collections;
public class MovieByGUI : MonoBehaviour {
//电影纹理贴图
public MovieTexture mMovie; //电影音频源
private AudioSource mAudio;
10.
11. //媒体信息定义
12. private string mediaName;//媒体名称 13. private string mediaLength;//媒体长度 14.
15. void Start () 16. {
17. mAudio=GetComponent();
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.
39. //播放控制
40. if(GUILayout.Button(\播放\ 41. {
42. mMovie.Play(); 43. mAudio.Play(); 44. }
45. //暂停控制
46. if(GUILayout.Button(\暂停\ 47. {
48. mMovie.Pause(); 49. mAudio.Pause(); 50. }
51. //停止控制
52. if(GUILayout.Button(\停止\ 53. {
54. mMovie.Stop(); 55. mAudio.Stop(); 56. } 57.
58. //绘制文本信息
59. GUILayout.Label(\媒体名称:\ 60. 61. } 62. } 63.
复制代码
GUILayout.Label(\
媒
体
长
度:\
GUI.DrawTexture(new
Rect(0,0,Screen.width,Screen.height),mMovie);