考虑到每个人基础可能不一样,且并不是所有人都有同时做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 编辑器中,视频能否正常播放取决于:
- 视频格式:Unity 支持
.mp4
、.mov
、.webm
等格式。 - 编解码器:建议使用 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