Unity3D游戏开发之在Unity3D中实现视频播放 - 图文 联系客服

发布时间 : 星期六 文章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);