如何用3D游戏体播放视频?

开发者在用Unity3D做工艺仿真、AR或者游戏时,经常要在各种形状的3D游戏体上插播视频充当广告或者教学,那到底怎样实现呢?这就要用到Unity内置的视频播放组件 —— VideoPlayer

Unity官方网址:https://docs.unity3d.com/Manual/class-VideoPlayer.html

主题

  • Demo效果展示
  • 如何在3D物体表面播放视频
  • 如何代码控制VideoPlayer
    • 1.代码控制视频播放、暂停,监听播放结束等
    • 2.如何监测3D游戏体是否在视野内?
  • 注意事项
  • 如何在2D Canvas上播放视频

Demo效果展示

先上视频看看效果(从左至右,依次是平面、球体、曲面、圆柱):

如何在3D物体表面播放视频?

如何在3D物体表面播放视频

首先创建GameObject ,在GameObject 上添加VideoPlayer 组件:
然后可以看到,Source 中两个选项,我目前用的是VideoClip。
1.VideoClip :可以直接拖入Project视图中的视频
2.URL : 可以放入视频的存储路径

然后下面还有一个选项值得一提,RenderMode(渲染模式)。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类。所以这里我们是想在3D物体上播放视频,所以选择MaterialOverride。

勾选play on awake,运行,就可以看到视频在模型上播放了。

如何代码控制VideoPlayer

1.代码控制视频播放、暂停,监听播放结束等

上面已经完成了视频播放功能,接下来我们通过代码控制视频:
下面展示一些 视频播放、暂停,监听播放结束等方法

        private VideoPlayer Vp;void Awake(){Vp = GetComponent<VideoPlayer>();}void Start(){Vp.loopPointReached += VideoEnd;Vp.Play();//播放视频Vp.Pause();//暂停视频Vp.Stop();//停止视频Vp.playbackSpeed = 1;//播放速度}/// <summary>/// 监听视频是否播放结束,结束时调用/// </summary>/// <param name="vp"></param>void VideoEnd(VideoPlayer vp){Debug.Log("视频播放结束");Vp.Play();//重新播放视频}

2.如何监测3D游戏体是否在视野内?

视频一般是有声音的,在做AR项目时,通常会在3D游戏体出界后,关闭该游戏体身上的视频和音效,那么如何监测3D游戏体是否出界呢?
Unity有一个内置方法,使用的唯一条件是该游戏体身上必须带有Mseh组件,因为它是通过是否渲染该游戏体来判断的。
下面展示 3D游戏体是否在视野内的监测方法

        //当游戏体第一次出界时调用,该游戏体身上必须带有Mseh组件private void OnBecameInvisible(){StopVideo();Debug.Log("出界");}//当游戏体第一次进入视野时调用,该游戏体身上必须带有Mseh组件private void OnBecameVisible(){OpenVideo();Debug.Log("视野内");}

注意事项

  1. 可选视频类型:.mp4、mov、.mpg、.mpeg、.avi和.asf
  2. 亲测3D模型使用情况:
    1、视频会在模型的每一个面都播放,比如视频会在正方体6个面分别播放。此外,模型和视频比例不一样的话会有拉伸情况。因此,需要按自己需求让美术做配套的模型和视频。
    2、如果发现视频的中心并不在3D模型的中间,是模型UV的问题,需要美术调整UV,把视频放在模型指定面的中间。

如何在2D Canvas上播放视频

在2D界面播放视频和在3D游戏体上播放,原理及代码是一样的,区别是要把Mesh组件换成RawImage,然后VideoPlayer的RenderMode选项选择RenderTexture或者其他选项。
详情就不说了,网上有很多,可以参考以下网址:
https://blog.csdn.net/weixin_43367805/article/details/93178830
https://www.cnblogs.com/0kk470/p/10637034.html

Unity3D 如何用3D游戏体播放视频 VideoPlayer相关推荐

  1. 【Unity 3D】常用播放视频的几种方式

    [准备工作] 在Unity3D中想要成功播放视频并不是一件太简单的事,还是有着诸多限制的. 要求如下: (1) 视频.格式支持 .mov, .mpg, .mpeg, .mp4, .avi, .asf ...

  2. 手机vr玩电脑上的3d游戏以及看视频

    文章目录 问题 解决 vr内容获得问题 问题 你的手机就是一个优秀的vr设备,何必再买昂贵的5000rmb的vr头显呢? 假设你的电脑上有一个3d游戏或者视频,你完全可以用手机的陀螺仪来控制电脑上的他 ...

  3. Unity3D VideoPlayer播放视频和音频

    Unity3D VideoPlayer播放视频和音频 今天来记录一下用Unity自带的VideoPlayer播放视频和音频. 首先准备一个带音频的视频文件,导入到工程中.Windows支持的视频格式有 ...

  4. unity3d二维游戏_比穷更可怕的,是你不会用!3D游戏建模就是那么简单

    我们为什么要学习3D建模? 首先我们可以了解一下3D建模,互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的5年时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络 ...

  5. SceneKit播放视频

    使用SceneKit如何播放视频 scenekit 播放视频的方式有很多种,今天我就给大家介绍一种最简单的播放视频的方式 使用的技术 要用到SpriteKit框架中的一个类SKVideoNode,这个 ...

  6. 3D游戏建模就是那么简单

    首先我们可以了解一下3D建模,我们为什么要学习3D建模? 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的5年时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络 ...

  7. UE4_UE5播放视频(附工程)

    UE4_UE5播放视频的方式: 要播放本地视频文件,先将视频文件存放在路径"Content/Movies"下,Movies文件夹默认是没有的,得自己手动创建. 参考官方教程:htt ...

  8. UE5在UI上播放视频带声音的解决方案

    上一篇文章有介绍在UE5中播放视频的三种方式 UE4_UE5播放视频(附工程)_蒙双眼看世界的博客-CSDN博客 接着补充如果在播放视频同时播放声音: 一.UE5在3D场景中播放视频带声音 选中pla ...

  9. 3D游戏建模就是那么简单!

    我们为什么要学习3D建模? 首先我们可以了解一下3D建模,互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的5年时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络 ...

最新文章

  1. 数据结构与算法--线性表(顺序表)
  2. Nature发文:深度学习系统为什么这么好骗?
  3. 8.11 更改用户ID和组ID
  4. JS——EasyuiCombobox三级联动
  5. 【微信小程序】wx:for
  6. SQLI DUMB SERIES-16
  7. A20修改串口设备文件
  8. Lock的lock()方法
  9. FMDB数据库框架的是使用
  10. 引导linux的工具下载,多系统引导工具(BootThink)下载_多系统引导工具(BootThink)官方下载-太平洋下载中心...
  11. 为什么要多读书?多看书?
  12. Android进阶之路 - 双端交互之传递Base64图片
  13. LFSR(线性反馈移位寄存器)
  14. Axure9(基础二)
  15. 行星介绍html页面布局,css3 html5实现太阳系行星公转动画实例
  16. Java核心技术大会|Java应用开发专场
  17. 论文阅读笔记(Region Proposal by Guided Anchoring)
  18. 用C#写一个微信登录软件(自己写协议)
  19. QGIS 3.14|地震数据动画效果实战(一)数据准备篇
  20. 基于CUBEMX和STM32C8T6的同轴麦轮小车制作(二)——HAL库接受jy61p陀螺仪数据,并解决数据溢出卡死问题。

热门文章

  1. web安全通信之JWT简介
  2. 华云数据张华林:投身数字蓝海 绘就云上强国
  3. 提权学习:第三方软件提权(搜狗输入法提权)
  4. 关于安装程序制作的简明教程(一)
  5. php后端异步处理数据,详解 PHP 异步后台处理
  6. 带你读论文系列之计算机视觉--SENet
  7. Undergraduate Innovation and Entrepreneurship Competition
  8. 《自然语言处理实战入门》:汉语语言学简介
  9. 吐槽微信上传视频文件提示
  10. 25K测试老鸟5年经验的面试心得,四种公司、四种问题…