首页 > 学院 > 开发设计 > 正文

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

2019-11-17 03:13:04
字体:
来源:转载
供稿:网友

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

大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。

今天我们来做一个在Unity3D中实现视频播放的实例。首先,Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我们只需要将这些文件放在项目文件夹里就可实现视频文件的导入。在Window系统下,我们需要在苹果公司的QuickTime软件下才能顺利地将视频文件导入Unity。如果视频文件含有音频文件,那么在导入Unity后会生成相应的音频文件。在Unity3D中实现视频播放的方法有两种:基于纹理贴图、基于GUI。我们下面分别来讲解:

1、基于纹理贴图

[csharp]view plaincopyPRint?在CODE上查看代码片

usingUnityEngine;
  • usingSystem.Collections;
  • publicclassMovieByTexture:MonoBehaviour{
  • //电影纹理贴图
  • publicMovieTexturemMovie;
  • //电影音频源
  • privateAudioSourcemAudio;
  • //媒体信息定义
  • privatestringmediaName;//媒体名称
  • privatestringmediaLength;//媒体长度
  • voidStart()
  • {
  • mAudio=GetComponent<AudioSource>();
  • //设置当前对象的主纹理为电影纹理贴图
  • renderer.material.mainTexture=mMovie;
  • //设置电影纹理播放模式为循环
  • mMovie.loop=true;
  • //开始播放电影
  • mMovie.Play();
  • //开始播放音乐
  • mAudio.Play();
  • }
  • voidUpdate()
  • {
  • //在这里更新媒体信息
  • mediaName=mMovie.name;
  • mediaLength=mMovie.duration.ToString();
  • }
  • voidOnGUI()
  • {
  • //播放控制
  • if(GUILayout.Button("播放",GUILayout.Height(30)))
  • {
  • mMovie.Play();
  • mAudio.Play();
  • }
  • //暂停控制
  • if(GUILayout.Button("暂停",GUILayout.Height(30)))
  • {
  • mMovie.Pause();
  • mAudio.Pause();
  • }
  • //停止控制
  • if(GUILayout.Button("停止",GUILayout.Height(30)))
  • {
  • mMovie.Stop();
  • mAudio.Stop();
  • }
  • //绘制文本信息
  • GUILayout.Label("媒体名称:"+mediaName,GUILayout.Height(30));
  • GUILayout.Label("媒体长度:"+mediaLength,GUILayout.Height(30));;
  • }
  • }
  • %20%20%202、基于GUI

    [csharp]view%20plaincopyprint?usingUnityEngine;
  • usingSystem.Collections;
  • publicclassMovieByGUI:MonoBehaviour{
  • //电影纹理贴图
  • publicMovieTexturemMovie;
  • //电影音频源
  • privateAudioSourcemAudio;
  • //媒体信息定义
  • privatestringmediaName;//媒体名称
  • privatestringmediaLength;//媒体长度
  • voidStart()
  • {
  • mAudio=GetComponent<AudioSource>();
  • //设置当前对象的主纹理为电影纹理贴图
  • renderer.material.mainTexture=mMovie;
  • //设置电影纹理播放模式为循环
  • mMovie.loop=true;
  • //开始播放电影
  • mMovie.Play();
  • //开始播放音乐
  • mAudio.Play();
  • }
  • voidUpdate()
  • {
  • //在这里更新媒体信息
  • mediaName=mMovie.name;
  • mediaLength=mMovie.duration.ToString();
  • }
  • voidOnGUI()
  • {
  • //绘制电影纹理贴图
  • GUI.DrawTexture(newRect(0,0,Screen.width,Screen.height),mMovie);
  • //播放控制
  • if(GUILayout.Button("播放",GUILayout.Height(30)))
  • {
  • mMovie.Play();
  • mAudio.Play();
  • }
  • //暂停控制
  • if(GUILayout.Button("暂停",GUILayout.Height(30)))
  • {
  • mMovie.Pause();
  • mAudio.Pause();
  • }
  • //停止控制
  • if(GUILayout.Button("停止",GUILayout.Height(30)))
  • {
  • mMovie.Stop();
  • mAudio.Stop();
  • }
  • //绘制文本信息
  • GUILayout.Label("媒体名称:"+mediaName,GUILayout.Height(30));
  • GUILayout.Label("媒体长度:"+mediaLength,GUILayout.Height(30));;
  • }
  • }
  • %20%20%20%20代码十分简单,这里不再赘述了。我们可以直接在场景中创建一个Plane,然后将脚本拖放到该对象上,再指定了音频文件、视频文件后就可以实现视频的播放了。最终效果如图所示:

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

    喜欢我的博客请记住我的名字:秦元培,我的博客地址是:blog.csdn.net/qinyuanpei

    转载请注明出处,本文作者:秦元培,本文出处:http://blog.csdn.net/qinyuanpei/article/details/24130347


    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表