版权声明:欢迎订阅公众号【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

     

Unity3D游戏开发之在Unity3D中视频播放功能的实现的更多相关文章

  1. [Unity3D]Unity3D游戏开发之从Unity3D到Eclipse

    ---------------------------------------------------------------------------------------------------- ...

  2. Unity3D游戏开发之C#编程中常见数据结构的比较

    一.前言 Unity3D是如今最火爆的游戏开发引擎,它可以让我们能轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型的互动内容.它支持2D/3D游戏开发,据不完全统计,目前国内80%的手机游戏都 ...

  3. [整理]Unity3D游戏开发之Lua

    原文1:[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.csdn.net/qinyuanpei.如果 ...

  4. [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新全然解读

    ---------------------------------------------------------------------------------------------------- ...

  5. [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)

    ---------------------------------------------------------------------------------------------------- ...

  6. [Unity3D]Unity3D游戏开发之Unity与Android交互调用研究

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在前一篇文章中,我们研究了Android平台上Unity3D的手势操作并在之前的基础 ...

  7. Unity3D游戏开发之SQLite让数据库开发更简单

    各位朋友大家好.欢迎大家关注我的博客,我是秦元培,我是博客地址是http://blog.csdn.net/qinyuanpei.在经历了一段时间的忙碌后,博主最终有时间来研究新的东西啦,今天博客向和大 ...

  8. [Unity3D]Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果

    大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei. 在<仙剑奇侠传>.<古剑奇谭>等游戏中,常常须要玩家在一个3D场景中 ...

  9. Unity3D游戏开发之Unity与Android交互调用研究

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在前一篇文章中,我们研究了Android平台上Unity3D的手势操作并在之前的基础 ...

随机推荐

  1. 前端(jQuery)(5)-- jQuery AJAX异步访问和加载片段

    异步访问 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  2. “本地视频使用flashFXP上传虚拟服务器“的方法

    一.视频转换格式 首先,想要在网页中直接嵌入视频,就得用video标签,而<video>支持的仅有的几种格式中,MP4是兼容性,通用性各方面相对友好的,所以,建议上传之前先转换格式并压缩. ...

  3. JAVA:在0-99间产生100个不重复的随机数

    Random rand = new Random(); boolean[] bool = new boolean[100]; int[] number = new int[100]; int rand ...

  4. Git同账号多平台配置

    最近工作中使用到了Git,虽然以前学习过,但是已经忘的差不多了,遂将本次配置过程整理成笔记以备忘 生成公钥 ssh-keygen -t rsa -C "gana10007@163.com&q ...

  5. 猜数字游戏_Python

    预先设置数字变量 age_of_test = 25 #这里设置为25,也可随意 guess_age = int (input("guess age:")) if guess_age ...

  6. 使用JSONObject进行序列化时,避开定义get或set为开头的方法名称

    从结果中可以看到,JSONObject对Test对象进行序列化时,把fileName也当做属性了. 原因:涉及到JavaBean规范(参考:https://www.cnblogs.com/yusimi ...

  7. 使用python爬去国家民政最新的省份代码的程序,requests,beautifulsoup,lxml

    使用的python3.6 民政网站,不同年份数据可能页面结构不一致,这点踩了很多坑,这也是代码越写越长的原因. 如果以后此段代码不可用,希望再仔细学习下 页面结构是否发生了变更. # -*- codi ...

  8. Leetcode849.Maximize Distance to Closest Person到最近的人的最大距离

    在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的. 至少有一个空座位,且至少有一人坐在座位上. 亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上. 返回 ...

  9. R语言Switch语句

    R语言Switch语句 switch语句允许一个变量值的列表来平等进行测试.每个值被称为一个条件(情况),变量被接通检查每个条件(情况). 语法 在R语言中创建switch语句的基本语法是: 以下规则 ...

  10. thrift python安装

    http://thrift.apache.org/download/ tar -zxvf thrift-0.11.0.tar.gz cd thrift-0.11.0 ./configure --pre ...