当前位置: 首页 > news >正文

【零基础入门unity游戏开发——进阶篇】unity中配合VideoClip和VideoPlayer组件实现视频播放

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇

  • 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
  • 【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
  • 【unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
  • 【unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。

这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。

最终效果演示

在这里插入图片描述

文章目录

  • 最终效果演示
  • 一、Unity 视频播放相关知识介绍
    • 1、为什么要学习视频播放?
    • 2、Unity 的视频播放解决方案
    • 3、视频格式和编解码器
      • 3.1 视频的本质
      • 3.2 视频的编码器和解码器
      • 3.3 硬件解码 vs 软件解码
    • 4、Unity 中的视频兼容性
      • 4.1 什么是视频兼容性?
      • 4.2 Unity 编辑器中的视频兼容性
  • 二、VideoClip视频资源参数
    • 1、VideoClip视频资源信息
    • 2、视频资源参数相关
      • 2.1 sRGB(颜色纹理)
      • 2.2 Transcode 是否开启转码
      • 2.3 Dimensions 控制源文件内容的大小调整方式
      • 2.4 Codec 选择用于转码的解编码器
      • 2.5 Bitrate Mode 比特率模式
      • 2.6 Spatial Quality 空间质量
      • 2.7 Keep Alpha 保留Alpha透明通道并在转码期间将其编码
      • 2.8 Deinterlace去交错设置
      • 2.9 Filp Horizontally 水平翻转
      • 2.10 Flip Vertically 垂直翻转
      • 2.11 Import Audio 导入音频
  • 三、VideoPlayer视频播放器
    • 1、VideoPlayer视频播放器是什么
    • 2、添加VideoPlayer视频播放器组件
      • 方法一
      • 方法二
      • 方法三
    • 3、VideoPlayer视频播放器组件参数
      • 3.1 Source 源
      • 3.2 Video Clip 视频剪辑
      • 3.3 URL 视频路径
      • 3.4 Update Mode 更新模式
      • 3.5 Play On Awake 唤醒时播放
      • 3.6 Wait For First Frame 等待第一帧
      • 3.7 Loop 循环
      • 3.8 Skip On Drop 放下时跳过
      • 3.9 Playback Speed 回放速度 播放速度
      • 3.10 Render Mode 渲染模式
        • (1) **Camera Far Plane**(摄像机远平面):在摄像机的远平面上渲染视频。
        • (2) **Camera Near Plane**(摄像机近平面):在摄像机的近平面上渲染视频。
        • (3) **Render Texture**(渲染器纹理):将视频渲染到 Render Texture 中。
        • (4) **Material Override**(材质覆盖)
        • (5) **API Only**(仅限 API):将视频呈现到VideoPlayer.texture脚本API属性中。您必须使用脚本将纹理指定给其预期目标。
      • 3.11 Aspect Ratio 宽高比
      • 3.12 Audio Output Mode 音频输出模式
  • 四、VideoPlayer视频播放器代码控制
    • 1、引用命名空间
    • 2、将一个 VideoPlayer 附加到主摄像机
    • 3、参数相关设置
    • 4、方法相关
    • 5、事件相关
  • 五、全景视频
    • 1、Unity支持的全景视频
      • 1.1 等距圆柱投影布局
      • 1.2 立方体贴图布局
    • 2、在Unity中使用全景视频
    • 3、使用全景视频时的注意事项
      • 3.1 Render Texture渲染纹理的Size和视频尺寸一样
      • 3.2 将渲染纹理的Depth Buffer深度模板格式设置为无
      • 3.3 Skybox>Panoramic天空盒材质设置
    • 4、总结
  • 专栏推荐
  • 完结

一、Unity 视频播放相关知识介绍

1、为什么要学习视频播放?

在游戏开发中,播放视频是一个常见的需求。比如:

  • 游戏开场动画:通过视频交代游戏背景。
  • 剧情动画:通过视频表现剧情发展。

2、Unity 的视频播放解决方案

Unity 提供了多种视频播放的解决方案:

  • MovieTexture:Unity 老版本的功能,现在已经几乎被淘汰。
  • VideoPlayer 组件:目前主流的视频播放工具,功能强大,能满足大多数需求。
  • 第三方插件:比如 AVPro Video,功能更强大,但需要额外购买。

我们主要学习 VideoPlayer 组件,因为它几乎能应对日常开发中的所有视频播放需求。

3、视频格式和编解码器

3.1 视频的本质

  • 视频是数据的集合(图像、音频、字幕等)。

  • 不同格式(如 .mp4、.mov)只是数据存储方式不同。

3.2 视频的编码器和解码器

为了节省存储空间和带宽,视频中的每个轨道(如音频、字幕等)都会使用“编解码器”进行压缩和解压缩:

  • 编码器:把视频数据压缩,节省空间。
  • 解码器:把视频数据解压,才能播放。

常见的视频编解码器是 H.264,常见的音频编解码器是 AAC

3.3 硬件解码 vs 软件解码

  • 硬件解码:通过 GPU(显卡)来解压视频,效率高,降低 CPU 负担,但支持的格式有限。
  • 软件解码:通过 CPU 来解压视频,支持所有格式,但会增加 CPU 负担,可能导致卡顿。

4、Unity 中的视频兼容性

4.1 什么是视频兼容性?

兼容性指的是视频能否在特定的操作系统或设备上正常播放。Unity 编辑器和目标平台(如 iOS、Android)对视频格式和编解码器的支持可能不同。

4.2 Unity 编辑器中的视频兼容性

在 Unity 编辑器中,视频能否正常播放取决于:

  1. 视频格式:Unity 支持 .mp4.mov.webm 等格式。
  2. 编解码器:建议使用 H.264 编解码器,因为它兼容性最好。

建议:使用 .mp4 格式 + H.264 编解码器,这样在 Unity 编辑器中可以正常预览。如果需要更好的性能可以使用 H.265 编解码器(支持 macOS 11.13+、Windows 10、iOS 11.0+、Android 5.0+)。


二、VideoClip视频资源参数

1、VideoClip视频资源信息

  • 当我们将准备好的视频导入Unity后,我们可以选中该视频剪辑,并在Inspector窗口中进行设置。
    在这里插入图片描述
  • 查看视频文件的基本信息,大小、时间、尺寸等等
    在这里插入图片描述
    在这里插入图片描述

2、视频资源参数相关

在这里插入图片描述

2.1 sRGB(颜色纹理)

是否开启sRGB,sRGB是微软联合惠普、三菱、爱普生等厂商联合开发的通用色彩标准。它的主要作用是避免在不同设备出现色差。一般默认让它勾选即可。

2.2 Transcode 是否开启转码

开启后下方参数才能被设置。

2.3 Dimensions 控制源文件内容的大小调整方式

在这里插入图片描述

参数 介绍
Original Size 保持原始大小
Three Quarter Res 将源大小调整为其原始宽度和高度的四分之三
Half Res 将源大小调整为其原始宽度和高度的一半
Quarter Res 将源大小调整为其原始宽度和高度的四分之一
Square 1024 将源大小调整为1024x1024正方形图像。宽高比可控
Square 512 将源大小调整为512x512正方形图像。宽高比可控
Square 256 将源大小调整为256x256正方形图像。宽高比可控
Custom Size 将源大小调整为自定义分辨率。宽高比可控

2.4 Codec 选择用于转码的解编码器

在这里插入图片描述

参数 介绍
Auto(自动) 为目标平台选择最合适的视频编解码器
H264 MPEG–4 高级视频编码 (AVC) 视频编解码器,受大多数平台上的硬件支持
H265 MPEG-H Part 2 或高效视频编码 (HEVC) 视频编解码器,受某些平台上的硬件支持
VP8 VP8视频编解码器,受到大多数平台上的软件支持,并受到 Android 和 WebGL 等几个平台上的硬件支持。

2.5 Bitrate Mode 比特率模式

Low(低)、Medium(中)或 High (高)比特率,相对于所选编解码器的基准配置文件。
在这里插入图片描述

2.6 Spatial Quality 空间质量

此设置决定视频图像在转码过程中是否压缩大小,缩小意味着它们占用的存储空间更少。但是,调整图像大小也会导致在播放期间出现模糊。
在这里插入图片描述

  • Low Spatial Quality:在转码期间图像大小显著减小(通常为原始尺寸的四分之一),然后在播放时扩展回原始大小。它可以节省最多的存储空间,但在播放时会产生最大的模糊度
  • Medium Spatial Quality:在转码期间图像大小适度减小(通常为原始尺寸的一半),然后在播放时扩展回原始大小。图像将比使用 Low Spatial Quality 选项的图像更清晰,所需存储空间有所减少。
  • High Spatial Quality:如果选择此选项,则不会调整大小。这意味着在转码期间图像大小不会减小,因此将保持视频的原始视觉清晰度。

2.7 Keep Alpha 保留Alpha透明通道并在转码期间将其编码

仅对具有Alpha通道的源显示此属性。注意:Android平台的原生 VP8 支持中不包括透明度支持,这意味着必须启用转码,以便 Unity 使用其内部 Alpha 表示方法。

2.8 Deinterlace去交错设置

控制隔行扫描源在转码期间如何解除隔行扫描,去交错设置主要是为了优化动态画面的清晰度
在这里插入图片描述

  • Off

相关文章:

  • 给单片机生成字库的方案
  • Android中实现多线程的几种方式
  • 计算机视觉——深入理解卷积神经网络与使用卷积神经网络创建图像分类算法
  • 【人工智能】人工智能安全(AI Security)
  • SQL Server表数据变更捕获的5种方法及实战对比
  • Simulink指导手册笔记①--自动创建模型
  • LeetCode 解题思路 16(Hot 100)
  • spring 创建单例 Bean 源码分析
  • itsdangerous加解密源码分析|BUG汇总
  • 大语言模型入门文献推荐
  • 每日Attention学习28——Strip Pooling
  • 【Golang】第二弹-----变量、基本数据类型、标识符
  • 上传本地项目到GitHub
  • 守护中国软件供应链安全,未名湖畔的筑梦人
  • Adobe Premiere Pro2023配置要求
  • 【Function】使用托管身份调用Function App触发器,以增强安全性
  • 深入解析 TensorFlow 兼容性问题及构建输出文件结构*
  • 操作系统八股文整理(一)
  • PyTorch 深度学习实战(11):强化学习与深度 Q 网络(DQN)
  • 【C++基础十】泛型编程(模板初阶)
  • 网站建设存在风险/汕头seo关键词排名
  • 可信赖的常州网站建设/谷歌浏览器免费入口
  • 自己做短视频的网站/网站统计数据分析
  • 阿里巴巴全球速卖通/关键词优化怎么操作
  • wps网站超链接怎么做/广州顶正餐饮培训学校
  • wordpress 标签页logo/南京关键词优化服务