在做游戏或者是虚拟漫游一般都会用到在开始的时候加载一段视频,这个视频可能一个介绍整个游戏或者是整个项目的。在加载完了之后自动的跳转到主画面或一个场景,在前在网上百度了一下找到的大部分都是win的好不容易找到了ios的。

Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,那么本章我们就好好学习一下Unity中播放视频的这两种方式

 Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视频文件拖拽入Project视图即可,它会自动生成对应的MovieTexture对象。如下图所示,MOMO将default_video.mp4拖拽入Project视图中,如果视频中含有音频的话会对应生成audio文件,因为我的视频没有音频所以没有生成 audio文件。接着在Hierarchy视图中创建一个Plane对象视频将在它之上播放,Directional light世界定向光用于照亮整个游戏场景,最后Main Camera对象将直直的照射在Plane对象。

使用对象拖拽的形式为Mov Texture对象赋值,那么在脚本中就能直接使用它了,我们看看Test.cs脚本。

Test.cs

[csharp] view plaincopyprint?
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Test: MonoBehaviour
  4. {
  5. //电影纹理
  6. public MovieTexture movTexture;
  7. void Start()
  8. {
  9. //设置当前对象的主纹理为电影纹理
  10. renderer.material.mainTexture = movTexture;
  11. //设置电影纹理播放模式为循环
  12. movTexture.loop = true;
  13. }
  14. void OnGUI()
  15. {
  16. if(GUILayout.Button("播放/继续"))
  17. {
  18. //播放/继续播放视频
  19. if(!movTexture.isPlaying)
  20. {
  21. movTexture.Play();
  22. }
  23. }
  24. if(GUILayout.Button("暂停播放"))
  25. {
  26. //暂停播放
  27. movTexture.Pause();
  28. }
  29. if(GUILayout.Button("停止播放"))
  30. {
  31. //停止播放
  32. movTexture.Stop();
  33. }
  34. }
  35. }
using UnityEngine;
using System.Collections;public class Test: MonoBehaviour
{//电影纹理public MovieTexture movTexture;void Start(){//设置当前对象的主纹理为电影纹理renderer.material.mainTexture = movTexture;//设置电影纹理播放模式为循环movTexture.loop = true;}void OnGUI(){if(GUILayout.Button("播放/继续")){//播放/继续播放视频if(!movTexture.isPlaying){movTexture.Play();}}if(GUILayout.Button("暂停播放")){//暂停播放movTexture.Pause();}if(GUILayout.Button("停止播放")){//停止播放movTexture.Stop();}}
}

 如下图所示,点击按钮后轻松的实现播放、暂停、停止操作。默认视频大小大家可在编辑器直接缩放Plane对象平面,而如果需要在游戏运行中动态的缩放平面使用方法:

[csharp] view plaincopyprint?
  1. transform.localScale = new Vector(1,1,1);
transform.localScale = new Vector(1,1,1);

模型默认缩放系数为1,这里可以调节平面X、Y、Z三个方向的缩放系数,平面的大小会随之改变,对应视频的大小也会随之改变。

 第二种播放视频的方式基于GUI。大家可以把刚刚创建的Plane对象以及世界定向光删除,直接将脚本绑定在摄像机对象中即可,接着我们简单的修改一下刚刚的游戏脚本。

Test.cs

[csharp] view plaincopyprint?
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Test: MonoBehaviour
  4. {
  5. //电影纹理
  6. public MovieTexture movTexture;
  7. void Start()
  8. {
  9. //设置电影纹理播放模式为循环
  10. movTexture.loop = true;
  11. }
  12. void OnGUI()
  13. {
  14. //绘制电影纹理
  15. GUI.DrawTexture (new Rect (0,0, Screen.width, Screen.height),movTexture,ScaleMode.StretchToFill);
  16. if(GUILayout.Button("播放/继续"))
  17. {
  18. //播放/继续播放视频
  19. if(!movTexture.isPlaying)
  20. {
  21. movTexture.Play();
  22. }
  23. }
  24. if(GUILayout.Button("暂停播放"))
  25. {
  26. //暂停播放
  27. movTexture.Pause();
  28. }
  29. if(GUILayout.Button("停止播放"))
  30. {
  31. //停止播放
  32. movTexture.Stop();
  33. }
  34. }
  35. }
using UnityEngine;
using System.Collections;public class Test: MonoBehaviour
{//电影纹理public MovieTexture movTexture;void Start(){//设置电影纹理播放模式为循环movTexture.loop = true;}void OnGUI(){//绘制电影纹理GUI.DrawTexture (new Rect (0,0, Screen.width, Screen.height),movTexture,ScaleMode.StretchToFill);  if(GUILayout.Button("播放/继续")){//播放/继续播放视频if(!movTexture.isPlaying){movTexture.Play();}}if(GUILayout.Button("暂停播放")){//暂停播放movTexture.Pause();}if(GUILayout.Button("停止播放")){//停止播放movTexture.Stop();}}}

在GUI中播放视频的原理是直接通过GUI调用DrawTexture方法,这里和绘制贴图很想了吧嘿嘿~ 目前播放视频的大小是屏幕的宽高,如果想动态的修改视频的宽或高直接修改new Rect() 视频显示区域即可,如下图所示,视频已经满满的填充在整个GUI中啦。怎么样Unity中播放视频简单吧? 哇咔咔~

补充:2012年10月21日 经测试以上的方式在IOS和Android设备中是无法播放视频的,在移动设备上我们需要使用两外一种方式来播放。

[csharp] view plaincopyprint?
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Test : MonoBehaviour {
  4. void OnGUI()
  5. {
  6. if (GUI.Button (new Rect (20,10,200,50), "PLAY ControlMode.CancelOnTouch"))
  7. {
  8. Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput);
  9. }
  10. if (GUI.Button (new Rect (20,90,200,25), "PLAY ControlMode.Full"))
  11. {
  12. Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Full);
  13. }
  14. if (GUI.Button (new Rect (20,170,200,25), "PLAY ControlMode.Hidden"))
  15. {
  16. Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Hidden);
  17. }
  18. if (GUI.Button (new Rect (20,250,200,25), "PLAY ControlMode.Minimal"))
  19. {
  20. Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Minimal);
  21. }
  22. }
  23. }
using UnityEngine;
using System.Collections;public class Test : MonoBehaviour {void OnGUI(){if (GUI.Button (new Rect (20,10,200,50), "PLAY ControlMode.CancelOnTouch")){Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput);}if (GUI.Button (new Rect (20,90,200,25), "PLAY ControlMode.Full")){Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Full);}if (GUI.Button (new Rect (20,170,200,25), "PLAY ControlMode.Hidden")){Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Hidden);}if (GUI.Button (new Rect (20,250,200,25), "PLAY ControlMode.Minimal")){Handheld.PlayFullScreenMovie("test.mp4", Color.black, FullScreenMovieControlMode.Minimal);}}}

1.视频播放时触摸屏幕视频关闭

2.视频播放时弹出IOS高级控件,控制视频暂停播放 全屏等等。

3.视频播放时无法停止,当其播放完一次后自动关闭

4.视频播放时弹出IOS高级控件,可控制播放进度。

注意:将视频文件放置在Assets/StreamingAssets/路径下,经测试.MP4可用。 在IOS和Android上流畅播放游戏视频。

工程下载: http://vdisk.weibo.com/s/gb4Lx

转自 http://www.xuanyusong.com/archives/1019

如果你感觉

Handheld.PlayFullScreenMovie("Style_hd.mp4",Color.black, FullScreenMovieControlMode.Full);

这个方法不受控制,不好用还可以使用

iPhoneUtils.PlayMovie("Style_hd.mp4", Color.black, iPhoneMovieControlMode.Hidden,iPhoneMovieScalingMode.AspectFit);

来源http://game.ceeger.com/Script/iPhoneUtils/iPhoneUtils.PlayMovie.html

跳转就很简单了在执行完这个语句之后在添加一句

Application.LoadLevelAsync(1);

比较详细的代码

function Start () {

Handheld.PlayFullScreenMovie("Style_hd.mp4",Color.black, FullScreenMovieControlMode.Full);

//Handheld.PlayFullScreenMovie("Style_hd.mp4", Color.black, FullScreenMovieControlMode.Hidden);

//iPhoneUtils.PlayMovie("Style_hd.mp4", Color.black, iPhoneMovieControlMode.Hidden,iPhoneMovieScalingMode.AspectFit);

Application.LoadLevelAsync(1);

}

转载于:https://www.cnblogs.com/xiao-wei-wei/archive/2013/03/30/2989967.html

unityios开发--加载视频以及加载完成之后自动跳转 .相关推荐

  1. php怎么给视频加水印,视频怎么加水印 添加文字水印和图片水印 给视频加水印的软件...

    昨天由于台风"妮妲"来了深圳,所以在家休息了一天,而且势汹汹的台风"妮妲"于2日03时35分在深圳市大鹏半岛登陆,登陆时风力达到14级,成为近年来正面登陆珠江三 ...

  2. OpenCV中使用类VideoCapture加载视频和打开摄像头

    先直接上示例代码,然后对代码进行讲解. #!/usr/bin/env python # -*- coding: utf-8 -*- # 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 248 ...

  3. qq互动视频页面加载失败_互动案例技术分析(2)

    这是该系列文章的第2篇,我们仍然会选择三个互动营销案例,从技术角度加以分析.这个系列并非为程序员而写,因为这些内容就是我们的日常工作.我们的目标是让更多的朋友能够了解技术可以实现的效果,以及更重要的- ...

  4. libGDX跨平台游戏开发框架入门:开发一个小游戏之加载资源

    目录 前言 加载资源 libGDX资源目录说明 配置各个平台启动器 desktop模块启动器设置 Android模块启动器设置 加速度计和指南针 html模块启动器设置 编写加载资产代码 1. 加载图 ...

  5. moviepy音视频剪辑:音视频的加载和输出

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在本地进行音视频处理时,首先要从视频文件 ...

  6. moviepy音视频剪辑:使用VideoFileClip、AudioFileClip和write_videofile、write_audiofile进行音视频的加载和输出

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在本地进行音视频处理时,首先要从视频文件 ...

  7. Android之MediaPlayer加载视频慢

    问题:Android系统播放器MediaPlayer播放网络视频,加载慢...缓冲慢... 结论:视频元数据位置不对 简单解释就是,大部分的视频格式是MP4,MP4格式的视频是由一个个Box组成的.这 ...

  8. 有效解决微信小程序加载视频[渲染层网络层错误] Failed to load media

    问题1,小程序的视频一般都是放在网络上的,没谁能把视频放本地把,所以在小程序视频插件在加载视频的时候,就会出现如下错误:[渲染层网络层错误] Failed to load media wxml加载视频 ...

  9. 又有坑是吧——MediaPlayer加载视频为什么这么慢

    "今天又是充满希望的一天" 背景 最近在做一个视频播放的需求,因为比较简单,只需要实现基本的loading,播放,暂停等功能,所以就用Android系统的播放器MediaPlaye ...

最新文章

  1. java中包的_Java中的包
  2. TZOJ--3560: Ordered Fractions (枚举)
  3. 2.1.2 骑自行车的最短时间
  4. 计算机网络信息安全的含义,计算机网络信息安全内涵及其重要性
  5. tf keras SimpleRNN源码解析
  6. JQuery常用选择器总结
  7. 【算法分析与设计】快速幂算法与快速幂取模算法
  8. Qt工作笔记-Qt文档阅读笔记-qualifiedName()的官方解析及XML使用名称空间
  9. docker pull 下载一半_Docker三个重要的基本操作,镜像,容量,仓库
  10. linux下几个压缩命令
  11. vim 编辑器基本使用
  12. vista中如何解决金山词霸延时问题
  13. 软件岗位--CTO、技术VP、技术总监、首席架构师
  14. uniapp之安卓文件操作插件
  15. 谷歌翻译失效,解决网页谷歌翻译的问题-只能解决页面翻译
  16. 物联网关键之传感器技术
  17. 趣头条“瘦身”减负?
  18. 7-42 打印倒直角三角形图案 (15 分)
  19. Python 从 Excel 读取链接下载文件
  20. Splay树各操作--数组

热门文章

  1. 将字符串中的字符按Z字形排列,按行输出
  2. ACM-ICPC 2018 焦作赛区网络预赛 H题 String and Times(SAM)
  3. 几种常用的数字滤波器
  4. [置顶] 混响音效
  5. BeanUtil使用例子:解析并转化HttpServletRequest到Bean的全面测试
  6. 基于Docker搭建Gitlab代码存储
  7. 10、jeecg 默认为空的字段值是如何被填充的?
  8. /lib/libcrypto.so“ not found,is 32-bit instead of 64-bit
  9. android RecyclerView EditText 取消自动聚焦
  10. WIN2003 X64 系统上安装sql server 2000 的步骤