Unity3D游戏开发之在Unity3D中视频播放功能的实现
版权声明:欢迎订阅公众号【5厘米的理想】,愿生命里的每个小理想,都能成为生命里的小确幸。本文地址为: https://blog.csdn.net/qinyuanpei/article/details/24130347
大家好,我是秦元培。欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。
今天我们来做一个在Unity3D中实现视频播放的实例。首先,Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我们仅仅须要将这些文件放在项目目录里就可实现视频文件的导入。
在Window系统下。我们须要在苹果公司的QuickTime软件下才干顺利地将视频文件导入Unity。假设视频文件含有音频文件。那么在导入Unity后会生成对应的音频文件。在Unity3D中实现视频播放的方法有两种:基于纹理贴图、基于GUI。我们以下分别来解说:
1、基于纹理贴图
using UnityEngine;
using System.Collections;
public class MovieByTexture : MonoBehaviour {
//电影纹理贴图
public MovieTexture mMovie;
//电影音频源
private AudioSource mAudio;
//媒体信息定义
private string mediaName;//媒体名称
private string mediaLength;//媒体长度
void Start ()
{
mAudio=GetComponent<AudioSource>();
//设置当前对象的主纹理为电影纹理贴图
renderer.material.mainTexture=mMovie;
//设置电影纹理播放模式为循环
mMovie.loop=true;
//開始播放电影
mMovie.Play();
//開始播放音乐
mAudio.Play();
}
void Update ()
{
//在这里更新媒体信息
mediaName=mMovie.name;
mediaLength=mMovie.duration.ToString();
}
void OnGUI()
{
//播放控制
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)); ;
}
}
2、基于GUI
using UnityEngine;
using System.Collections;
public class MovieByGUI : MonoBehaviour {
//电影纹理贴图
public MovieTexture mMovie;
//电影音频源
private AudioSource mAudio;
//媒体信息定义
private string mediaName;//媒体名称
private string mediaLength;//媒体长度
void Start ()
{
mAudio=GetComponent<AudioSource>();
//设置当前对象的主纹理为电影纹理贴图
renderer.material.mainTexture=mMovie;
//设置电影纹理播放模式为循环
mMovie.loop=true;
//開始播放电影
mMovie.Play();
//開始播放音乐
mAudio.Play();
}
void Update ()
{
//在这里更新媒体信息
mediaName=mMovie.name;
mediaLength=mMovie.duration.ToString();
}
void OnGUI()
{
//绘制电影纹理贴图
GUI.DrawTexture(new Rect(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)); ;
}
}
代码十分简单。这里不再赘述了。我们能够直接在场景中创建一个Plane,然后将脚本拖放到该对象上。再指定了音频文件、视频文件后就能够实现视频的播放了。终于效果如图所看到的:
今天的内容就是这样了,近期不知道该写点什么了。大家想了解什么内容的话,能够给我留言啊。
喜欢我的博客请记住我的名字:秦元培。我的博客地址是:blog.csdn.net/qinyuanpei
转载请注明出处,本文作者:秦元培。本文出处:http://blog.csdn.net/qinyuanpei/article/details/24130347
最新文章
- Sublime Text对Python代码加注释的快捷键
- 用Hbase存储Log4j日志数据:HbaseAppender
- xUtils更新到3.0后的基本使用规则
- 使用JS对HTML标签进行增删改查
- mysql describe
- Multiple View Geometry in Computer Vision Second Edition by Richard Hartley 读书笔记(一)
- hdu 2460
- python的时间模块
- JVM内存管理学习总结(一)
- 9.mybatis动态SQL标签的用法
- ASP.NET Forms身份认证
- JS+PHP实现用户输入数字后取得最大的值并显示为第几个
- python concurrent.futures
- SAP文件的上传下载 SMW0,二进制文件
- python爬虫之基本知识
- 推荐一本写给IT项目经理的好书
- PAT A1010 Radix (25 分)——进制转换,二分法
- Qt Quick Dialogs
- Linux学习7-文件操作
- Python 字符串过滤