博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3D游戏开发之在Unity3D中视频播放功能的实现
阅读量:4318 次
发布时间:2019-06-06

本文共 2824 字,大约阅读时间需要 9 分钟。

版权声明:欢迎订阅公众号【5厘米的理想】,愿生命里的每个小理想,都能成为生命里的小确幸。本文地址为: https://blog.csdn.net/qinyuanpei/article/details/24130347

      大家好,我是秦元培。欢迎大家关注我的博客,我的博客地址是。

      今天我们来做一个在Unity3D中实现视频播放的实例。首先,Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。我们仅仅须要将这些文件放在项目目录里就可实现视频文件的导入。

在Window系统下。我们须要在苹果公司的软件下才干顺利地将视频文件导入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
(); //设置当前对象的主纹理为电影纹理贴图 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
(); //设置当前对象的主纹理为电影纹理贴图 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

     

转载于:https://www.cnblogs.com/ldxsuanfa/p/10546172.html

你可能感兴趣的文章
Http和Socket连接区别
查看>>
Arrays基本使用
查看>>
受限玻尔兹曼基
查看>>
Angular2,Springboot,Zuul,Shiro跨域CORS请求踩坑实录
查看>>
C语言中操作符的优先级大全
查看>>
SQL Server 查询分析器提供的所有快捷方式(快捷键)
查看>>
Linux - 查看系统基础信息的一般渠道
查看>>
Java第七次作业--图形用户界面
查看>>
MongoDB学习笔记06
查看>>
Powerdesigner+Execel
查看>>
数学基础 数论(二)
查看>>
走进模块
查看>>
什么是簇?
查看>>
[LeetCode] Construct Binary Tree from Inorder and Pretorder Traversal
查看>>
[转载]Android通过Socket上传文件
查看>>
golang 中的定时器(timer),更巧妙的处理timeout
查看>>
AT2134 Zigzag MST
查看>>
[NOI2019]回家路线
查看>>
何谓CRT,CRT的由来
查看>>
项目管理实践--VisualSVN Server
查看>>