播放视频其实和贴图非常相像,因为播放视频用到的 MovieTexture 属于贴图 Texture 的子类。Unity3D 支持的视频格式有很多,但是还是建议使用 ogv 格式的视频,使用其他格式依然需要插件转码成 ogv 格式,可以省去很多麻烦。

第一种:在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。在播放对象身上挂如下脚本,并直接将视频拖入 movieTexture 变量中即可实现播放视频。

 using UnityEngine;
using System.Collections; public class Test : MonoBehaviour
{
//电影纹理
public MovieTexture movieTexture; private void Start()
{
//获取当前对象 MeshRenderer 组件
MeshRenderer meshRenderer = this.GetComponent<MeshRenderer>();
//设置当前对象的主纹理为电影纹理
meshRenderer.material.mainTexture = movieTexture;
//播放模式设置为循环播放
movieTexture.loop = true;
// movieTexture.isPlaying 属性,是否正在播放
if (!movieTexture.isPlaying)
{
//开始播放
movieTexture.Play();
}
//暂停播放
//movieTexture.Pause();
//停止播放
//movieTexture.Stop();
}
}

第二种:在GUI层面上播放视频。将如下脚本挂在任何一个物体上即可。

 using UnityEngine;
using System.Collections; public class Test : MonoBehaviour
{
//电影纹理
public MovieTexture movieTexture; private void Start()
{
//播放模式设置为循环播放
movieTexture.loop = true;
} private void OnGUI()
{
GUI.DrawTexture(new Rect(, , Screen.width, Screen.height), movieTexture, ScaleMode.StretchToFill);
if (GUILayout.Button("播放/继续"))
{
if (!movieTexture.isPlaying)
{
movieTexture.Play();
}
}
if (GUILayout.Button("暂停播放"))
{
movieTexture.Pause();
}
if (GUILayout.Button("停止播放"))
{
movieTexture.Stop();
}
}
}

注意:以上两种方式是无法适用于移动端的。需要使用Handheld.PlayFullScreenMovie()方法来播放,而且由于调用的是移动端内嵌的播放器,只能平面播放。也就是说我们无法用曲面来播放全景视频,在开发VR/AR项目时需要注意。而且将视频文件放置在Assets/StreamingAssets/路径下。由于播放器问题,并不是所有视频格式都可以,目前亲测 mp4 格式可以播放。脚本如下:

 using UnityEngine;
using System.Collections; public class Test : MonoBehaviour
{
private void Start()
{
Handheld.PlayFullScreenMovie("Final.mp4", Color.black, FullScreenMovieControlMode.Full, FullScreenMovieScalingMode.AspectFill);
}
}

第一个参数为路径,第二个参数为背景颜色,不做其他描述。

FullScreenMovieControlMode   视频全屏控制器。 
    Full                     全部控制部分   包括快进后退  进度条控制等。   播放完后退出
    Minimal              迷你版控制            播放完后退出
    CancelOnInput  点击后退出    (播放视频时) 点击屏幕退出播放
    Hidden               不显示任何控制     只能全部播放完后才能退出

FullScreenMovieScalingMode  播放视频时缩放大小适应屏幕
    None         不缩放视频   按原比例播放
    AspectFit  缩放电影直到完全适应屏幕比例 (不会改变视频宽高比比例)
    AspectFill  缩放电影直到完全铺满屏幕   (会改变视频宽高比例)
    Fill            铺满屏幕

第三种:从Unity3D 5.6版本开始,Unity3D就自带 VideoPlayer 组件,具体的使用方法还有待研究,是否支持移动端还需要测试,反正我是还没用过 。

Unity3D中播放视频的方法的更多相关文章

  1. 在Winform中播放视频等【DotNet,C#】

    在项目中遇到过这样的问题,就是如何在Winform中播放视频.当时考察了几种方式,第一种是直接使用Windows Media Player组件,这种最简单:第二种是利用DirectX直接在窗体或者控件 ...

  2. unity中播放视频

    unity中播放视频步骤如下: 1.将要播放的视频拖入projec.(注意:unity一般支持的视频格式有mov, .mpg, .mpeg, .mp4,.avi, .asf格式  ) 2.在场景中添加 ...

  3. html5不能播放视频的方法

    html5不能播放视频的方法H5不能播放视频的方法 格式工厂转换成 AVC 注意音频流 采样率和比特率 设置低一点 不然播放会卡住 还有点击播放必须要click 不要用touchstart没效果的

  4. 使用CKplayer插件在网页中嵌入视频的方法(常用笔记2)

    在做网站中有时候我们需要在网页中嵌入视频,一般视频嵌入有以下几种方法: 1. 优酷代码嵌入 优点:简单,方便,可靠. 缺点:有广告,现在的网站非常注重用户体验,如果打开一个在线视频是有长广告的一定会崩 ...

  5. 【CKplayer】使用CKplayer插件在网页中嵌入视频的方法

    在做网站中有时候我们需要在网页中嵌入视频,一般视频嵌入有以下几种方法: 1. 优酷代码嵌入 优点:简单,方便,可靠. 缺点:有广告,现在的网站非常注重用户体验,如果打开一个在线视频是有长广告的一定会崩 ...

  6. 【狼】unity3d 安卓播放视频替代视频纹理

    http://www.cnblogs.com/zhanlang96/p/3726684.html 原创,有问题或错误的话希望大家批评指正 导出apk,是不能用电影纹理的,所以我们只能用这个办法 这个 ...

  7. Opencv从文件中播放视频

    1.VideoCapture()括号中写视频文件的名字,在播放每一帧的时候,使用cv2.waitKey()设置适当的持续时间,太低会播放的很快,太高会很慢,通常情况下25毫秒就行了. 2.获取相机/视 ...

  8. Unity3D中C#和js方法相互调用

    通过查找资料,Unity3D中C#和js要相互调用彼此的方法,js文件必须放在"Standard Assets". "Pro Standard Assets" ...

  9. 用flvplayer.swf在网页中播放视频(网页中flash视频播放的实现)

    原:http://blog.csdn.net/ricciozhang/article/details/46868201 由于公司项目的需求,需要在展示一些信息的时候能够播放视频,拿到这个要求,我就从最 ...

随机推荐

  1. Docker系列07:Docker-compose

    1  什么是Docker-Compose Compose项目来源于之前的fig项目,使用python语言编写,与docker/swarm配合度很高. Compose 是 Docker 容器进行编排的工 ...

  2. centos 支持安装libsodium

    yum install epel-release -y yum install libsodium -y 然后没了.

  3. C# 自定义异常的方法源码演示及说明

    内容之余,把做工程过程中较好的内容段备份一下,下边内容是关于C# 自定义异常的方法演示及说明的内容,希望能对各位朋友有一些好处. using System;using System.Collectio ...

  4. Spring MVC Controller异常处理总结

    在项目开发过程中,经常遇到服务被攻击的情况,虽然接口在设计过程中有相当多的安全措施,例如cookie校验.风控.访问熔断等相关技术保证服务的安全性,不过感觉还是有必要收集分析一下这些攻击请求者,以备为 ...

  5. C++环境的配置( windows)

    方法一.——VS: 使用windows开发神器visio studio.这种方法比较简单,直接下载一个最新的vs安装就行.不单单是C++,C.C#.VB等都可以开发. 方法二.——只安装C++编译器: ...

  6. 批量移动AD用户到指定OU

    原文链接:http://blog.51cto.com/shubao/1346469 作为域管理员,在日常工作中使用ADUC(AD用户和计算机)工具在图形界面中进行账号管理操作可谓是家常便饭了.然而一个 ...

  7. Web框架本质及第一个Django实例 Web框架

    Web框架本质及第一个Django实例   Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...

  8. kalman filter卡尔曼滤波器- 数学推导和原理理解-----网上讲的比较好的kalman filter和整理、将预测值和观测值融和

    = 参考/转自: 1 ---https://blog.csdn.net/u010720661/article/details/63253509 2----http://www.bzarg.com/p/ ...

  9. MySQL事件不自动执行

    前台统计数据量很大,于是在数据库中新建了一个事件,每隔10分钟执行一次存储过程,向统计表中插入统计数据 但是创建完成后发现事件并不会自动执行,上网查了一下才知道必须手工开启才事件可以 查看事件开启状态 ...

  10. pytorch入门之安装和配置

    pytorch是一种python接口的深度学习框架,其他的框架还有caffe,tensorflow等等. 1,pytorch目前支持linux和OSX两种系统.支持的Python版本有2.7,3.5, ...