Unity3D游戏开发之在Unity3D中实现视频播放

  • 格式:doc
  • 大小:335.50 KB
  • 文档页数:6

今天我们来做一个在Unity3D中实现视频播放的实例。

该文章出自【狗刨学习网】首先,Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。

我们只需要将这些文件放在项目文件夹里就可实现视频文件的导入。

在Window系统下,我们需要在苹果公司的QuickTime软件下才能顺利地将视频文件导入Unity。

如果视频文件含有音频文件,那么在导入Unity后会生成相应的音频文件。

在Unity3D中实现视频播放的方法有两种:基于纹理贴图、基于GUI。

我们下面分别来讲解:
1、基于纹理贴图
ing UnityEngine;
ing System.Collections;
3.
4.public class MovieByTexture : MonoBehaviour {
5.
6. //电影纹理贴图
7. public MovieTexture mMovie;
8. //电影音频源
9. 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=;
32. mediaLength=mMovie.duration.ToString();
33. }
34.
35. void OnGUI()
36. {
37. //播放控制
38. if(GUILayout.Button("播放",GUILayout.Height(30)))
39. {
40. mMovie.Play();
41. mAudio.Play();
42. }
43. //暂停控制
44. if(GUILayout.Button("暂停",GUILayout.Height(30)))
45. {
46. mMovie.Pause();
47. mAudio.Pause();
48. }
49. //停止控制
50. if(GUILayout.Button("停止",GUILayout.Height(30)))
51. {
52. mMovie.Stop();
53. mAudio.Stop();
54. }
55.
56. //绘制文本信息
57. bel("媒体名称:"+mediaName,GUILayout.Height(30));
58. bel("媒体长
度:"+mediaLength,GUILayout.Height(30)); ;
59. }
60.}
复制代码
2、基于GUI
ing UnityEngine;
ing System.Collections;
3.
4.public class MovieByGUI : MonoBehaviour {
5.
6. //电影纹理贴图
7. public MovieTexture mMovie;
8. //电影音频源
9. 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=;
32. mediaLength=mMovie.duration.ToString();
33. }
34.
35. void OnGUI()
36. {
37. //绘制电影纹理贴图
38. GUI.DrawTexture(new
Rect(0,0,Screen.width,Screen.height),mMovie);
39. //播放控制
40. if(GUILayout.Button("播放",GUILayout.Height(30)))
41. {
42. mMovie.Play();
43. mAudio.Play();
44. }
45. //暂停控制
46. if(GUILayout.Button("暂停",GUILayout.Height(30)))
47. {
48. mMovie.Pause();
49. mAudio.Pause();
50. }
51. //停止控制
52. if(GUILayout.Button("停止",GUILayout.Height(30)))
53. {
54. mMovie.Stop();
55. mAudio.Stop();
56. }
57.
58. //绘制文本信息
59. bel("媒体名称:"+mediaName,GUILayout.Height(30));
60. bel("媒体长
度:"+mediaLength,GUILayout.Height(30)); ;
61. }
62.}
63.
复制代码
代码十分简单,这里不再赘述了。

我们可以直接在场景中创建一个Plane,然后将脚本拖放到该对象上,再指定了音频文件、视频文件后就可以实现视频的播放了。

最终效果如图所示:
今天的内容就是这样了,最近不知道该写点什么了,大家想了解什么内容的话,可以给我留言啊。