Unity3D教程:播放视频的两种方式

这篇具有很好参考价值的文章主要介绍了Unity3D教程:播放视频的两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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对象。

Unity3D教程:播放视频的两种方式

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

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对象平面,而如果需要在游戏运行中动态的缩放平面使用方法:文章来源地址https://www.toymoban.com/news/detail-504357.html

transform.localScale = new Vector(1,1,1);
模型默认缩放系数为1,这里可以调节平面X、Y、Z三个方向的缩放系数,平面的大小会随之改变,对应视频的大小也会随之改变。
第二种播放视频的方式基于GUI。大家可以把刚刚创建的Plane对象以及世界定向光删除,直接将脚本绑定在摄像机对象中即可,接着我们简单的修改一下刚刚的游戏脚本。
using UnityEngine;
 
  using System.Collections;
 
  public class Test: MonoBehaviour
 
  {
 
  //电影纹理
 
  public MovieTexture movTexture;
 
  void Start()
 
  {
 
  //设置电影纹理播放模式为循环
 
  movTexture.loop = true;
 
  }
 
  void OnGUI()
 
  {
 
  //绘制电影纹理
 
  GUI.DrawTexture (new Rect (,, 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();
 
  }
 
  }
 
  }

到了这里,关于Unity3D教程:播放视频的两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3d C#利用本地网页快速打开萤石云监控视频流(ezopen)实现云台,声音等控制,支持WebGL平台,替代UMP播放(含源码)

    之前我介绍了替代Universal?Media?PlayerUMP播放石云监控视频流(ezopen)的功能,效果还是很明显的,笔者的测试是差不多3-5秒就能打开监控画面,不过稍微遗憾的是,之前的功能是iframe打开石云提供的播放网页的形式,功能基本只有画质切换,声音开关等;具体可以移步查看(https

    2024年02月13日
    浏览(34)
  • Unity3D教程:2D游戏技能特效

    在我们的2D图形游戏中不可缺少大量的光影、技能特效,像Diablo II中的魔法效果的实现,幸好我们拥有强大的CPU来为我们实现Alpha混合与色彩饱和混合,接下来让我们来讨论一下如何用这些方法来实现我们游戏中所需要的技能特效。     一、Alpha混合特效     Alpha混合可以让我

    2024年02月01日
    浏览(29)
  • Unity3D教程:抓取物件脚本、变数、名称

    游戏中相当常使用的功能GetComponent,经常用来Get(取得)物件上的Component(组件)资讯,若没有取得组件会回传null值。 gameObject . GetComponent ( “ScriptName” ); 如果发现要抓取GetComponent上的值为大写可能就要注意一下原本的变数是否为小写如图1所示: TextMesh 是3D Text上原本就包含的

    2024年02月15日
    浏览(28)
  • Unity3D教程:Streaming Assets路径

    我们在读写例如XML和TXT文件的时候,在电脑上和手机上路径不一致,造成了很多麻烦,其实有个简单的方法,在项目工程中新建一个StreamingAssets文件夹,把你的XML和TXT文件放到这里。 注:其实每个平台的路径都可以是Application.streamingAssetsPath+“/Achievement.xml”。但是android平台

    2024年02月16日
    浏览(28)
  • UNITY3D回合制游戏开发教程案例

    UNITY3D实现回合制游戏 ,类似梦幻西游,口袋妖怪,阴阳师。 先上效果 UNITY3D 回合制游戏案例源码开发教程 普通攻击 AOE技能 游戏概述 回合制游戏是一种策略游戏,玩家需要在自己的回合内进行决策,然后等待对手的回合。游戏通常包括角色扮演、卡牌、战略等元素,玩家需

    2024年02月09日
    浏览(44)
  • Unity3D软件安装包分享(附安装教程)

    目录 一、软件简介 二、软件下载 Unity3D是一款全球知名的游戏开发引擎,由Unity Technologies公司开发。它提供了一个跨平台、多功能的开发环境,支持创建2D和3D游戏、交互式应用、虚拟现实、增强现实等多种类型的应用程序。以下是Unity3D软件的主要特点和功能: 跨平台:Un

    2024年02月10日
    浏览(24)
  • 【Unity3D插件】动态连线插件CustomWire,使用教程

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 CustomWire 插件可以在Unity3D中实现动态连线,将三维物体通过线段连接到一起。 可以添加多个节点,以

    2024年02月08日
    浏览(80)
  • 【unity3D】unity记忆翻牌小游戏教程(简单详细)

    游戏开发的 学习记录 ⑨ (最近在做得游戏里想加一个类似于记忆翻牌小游戏得部分,然后在网上收集了资料学习了一下,学会后写下这份制作记录,希望可以帮到你~) 📜一位大佬的博客,写的很详细:【Unity3D游戏教程】记忆翻牌游戏 (大家可以先看大佬这篇,我写这篇

    2024年02月07日
    浏览(198)
  • Unity3d 获取场景中摄像头视频流,实现直播效果(无需代码)

    下面是具体操作流程:   1. 搭建服务器,选用github 一个开源的 node.js服务器。 下载地址GitHub - iizukanao/node-rtsp-rtmp-server: RTSP/RTMP/HTTP hybrid server,点击克隆,选择ZIP下载。  2. 下载node.js( 官网链接 Node.js)   选择下载最新版本,并根据提示一步步安装即可。 3.搭建服务器。 找到

    2023年04月08日
    浏览(23)
  • Unity3D教程:触发器实现简单的场景跳转

    首先,需确保有一个想要跳转的目标场景。在本案例中,目标场景是ending。 第一步:创建一个碰撞体,放置在需要的触发场景跳转的位置。 第二步:删除多余的脚本,并且新建自己的脚本: 第三

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包