简述:
已经有好多年没有系统的阅读过unity的官方文档了,加上一直扑在项目上,一般都是用啥查啥。
最近稍有时间,还是打算把手册再完整的翻阅一遍,毕竟已经这么多版本了,无论是功能还是工具应该都有不少的新增与优化,再一次成为活体用户手册吧。
中文的文档看起来还是很快的,但刚开始就翻到了一篇 讲解新特性的文档,结果是个英文的,就人肉翻译一下,也算做点贡献吧。
一些名词不太好翻译的 就保持原样应该更好 理解
原文连接 https://docs.unity3d.com/cn/current/Manual/WhatsNew2021LTS.html
版本 Unity 2021 LTS(长期支持版)
都有哪些新的变化
目录
- 编辑器有工作流
- 编程工作流
- 平台相关
- 视觉相关
- 高清管线 (HDRP)
- 统一关系(URP)
- 可编程管线(SRP 前面5、6两者的基础)
- 编辑工具的变化
- 2D 相关
编辑器与工作流
2D 游戏开发快速指引
此引导提供了在Unity中开发2D游戏的工作流。此引导可以帮助你确定游戏想要的风格,设置项目,创建2D游戏
3D 游戏开发快速指引
此引导提供了在Unity中开发3D游戏的工作流。帮助你设置项目,创建3D游戏
Scene 窗口的浮层(例如:窗口内工具条)
现在Scene 窗口包含了基于艺术的操作工具和可自定义化的浮动场景工具条,组件工具,转向,搜索工具等。这套系统是可以扩展的,你可以添加自定义的工具或工具条。
效率的改进与提升
- Transform 组件可以约束等比缩放
- Project 添加了对资源的 复制/剪切/粘贴的支持,如果从 Hierarchy 窗口拖动多个对象到 Project 面板,那么这会自动生成多个 Prefab
- 可以在属性(Inspector)面板快速的直接预览复杂的预制体(Prefab),并且可以以多选的形式(Revert to Prefab)还原属性到 prefab
- game 视窗最大化现在可以使用三种方式,Play Focused、Play Maximized、Play Unfocused
- 现在点击Renderer 组件上的 材质属性槽,材质会在 Scene 视图 高亮显示
- 属性面板的 数字属性的数学表达式计算更准确。例如,Sqrt(9) 或则 *=2 ,会将整个选择的值的范围扩大两倍(应该是精度吧),各种 C# 的 Math 类型的 ToString() 方法现在会默认打印两位小数。
可视化编程的改进
当打开一个空的 graph 编辑界面的时候,会提示如何创建或加载 graph。目前图标已经和 Unity Editor 保持一致。"Unit"(单元) 被重命名为 "Node"(节点),"Super Unit" 被重命名为 "Sub-Graph"。新的节点更容易访问 Script Graph 和 State Graph
搜索支持 Table view
可以使用新的 Table view 来进行跨属性之间的比较 、根据名称或描述排序。现在,当您通过资产选择器选择参考时,您可以使用搜索来获取更多相关项目。
特性集(Feature sets)
包管理器(PackageManager)目前支持特性集功能,可以根据需要将功能分组在一起,例如 2D 游戏开发,或则 为移动端创建。
苹果 silicon 编辑器
苹果 Silicon 编辑器为 Mac M1的用户提供类似 内置 Unity编辑器的使用体验
资产流程的改进
导入活动窗口
导入活动窗口可以展示导入过程都发生了什么。例如,哪些资源你导入或重导了,什么时候导入的,导入耗费多少时间
更快的资产导入速度
新的贴图加速导入,模型导入优化和新的导入选项等使得资产导入速度更快。例如强制快速压缩资产。
优化构建进程
此发行版进行了可编辑构建管线的优化和构建缓存的性能提升来优化构建进程。播放器的构建管线目前自持 Windows、 macOS、android 和 webGL 的 C# 增量编译。这些将有可能减少一些项目中的小修改带来的编译时间消耗。
使用 IL2CPP 代码生成 来加快构建
构建设置中的 IL2CPP 代码生成选项,是生成的代码最多可减少 50%,这意味着更快的构建速度和更小的执行文件成为可能。
编程流程
目前编程流程性能上的改进,例如:
- 更积极的内联函数提升 C# Math 性能
- 现在可以从 burst Jobs 调用异步读取管理 API,包含异步打开、关闭和取消
- 资产垃圾回收实现多线程
- GUID 的生成速度对于普通数据生成速度提升 6 倍
调试工具集的功能改进如下: - 与绑定的Android设备更强的连接性
- 连接的下拉菜单进行了分组,分为 本地,远程,直连。
- 更好的获取 URP/HDRP 代码的 GUP 时间的平台支持
- 新的 API 现在将任意数据传递给 Profiler,并将其可视化为自定义 Profiler 模块。这可以在 Profiler 窗口中显示与游戏或任何其他系统相关的性能指标,以及 Profiler 数据的替代可视化,以促进额外的分析
- Profiler 窗口中的内存模块视图具有更强大的功能
通过版本定义可支持多版本
你可以在一套代码内通过版本定义来实现对最新的 API 和 老版本的 API 的支持
使用 timeAsDouble 构建基于时间精度的功能
Time.timeAsDouble 各种 double属性,使你在项目中可以使用双浮点精度。这对构建长时间运行的程序很有用,比如专用游戏服务器
代码覆盖率包 开启正式版
代码覆盖率包和TestRunner 可以检查工程中的测试覆盖率,包括详细的 HTML 格式的报告,便于找出当前测试用例未覆盖的区域。
加入全面的内存分析
内存分析包已更新,以确保报告托管数据类型的所有相关数据,包括多维数组。此外对纹理和模型的内存报告进行了改进。
Unity 现在支持多 player 的性能分析
现在你可以在一台设备上运行多个player 实例,然后使用 Unity Profiler 连接一个实例,来获取其性能分析,让你使用更少的设备来提升效率,附 youtube 视频连接 https://www.youtube.com/watch?v=Mx7HlDGLTv0
通过设备模拟器进行多平台测试
设备模拟器已经内置到Unity的安装包内,无需再通过package的方式去安装,使用设备模拟器来观察你的游戏在移动端的表现
使用可视化编程创建逻辑
可视化编程已经作为一个核心功能内置于unity的安装包内。你可以使用它通过可视化的拖拉拽来进行原型的设计和迭代。可视化脚本也是使现有脚本更易于访问,以创建供非编程团队成员使用的工具的好方法。
平台
显示设置的 Screen API
新的 ScreenAPI 提供了游戏中更强大的显示设置功能,可以让使用多显示器的玩家选择在哪台显示器上显示游戏窗口
- Screen.mainWindowPosition
- Screen.mainWindowDisplayInfo
- Screen.GetDisplayLayout()
- Screen.MoveMainWindowTo()
支持 Android 开发环境下的 ChromeOS 系统
unity 目前支持 基于 X86,x86-64,arm架构的 ChromeOS 设备。unity内置输入模拟支持,但你也可以创建自己的输入控制来进行鼠标和键盘的高级设置。
Android APP Bundles
unity 现在直接支持安卓的新扩展文件格式 Android App Bundle(AAB) 来进行资源构建。 使用 AAB,你可以遵循google的资源发布需求上传任何app到谷歌商店
性能自适应的快速启动
性能自适应可以考虑 CPU/GPU 的性能资源来帮助更快的启动app。它内置于Unity profiler,所以你可以在正常流程中测试性能自适应的效率
安卓线程配置
安卓线程配置给予你一个友好的控制,让你的应用可以最大性能的运行在一些硬件上。目前它包含节能模式和性能模式两种应用优化方式
WebGL 改进
- Emscripten 2.0.19, 更快的构建速度,更小的输出文件
- 未来在移动网络浏览器(iOS 和 Android)中支持 WebGL 播放器的功能,包括陀螺仪、加速度计、重力传感器和姿态传感器值
- 前后置网络摄像头
- 您现在可以在 Android 浏览器上锁定全屏项目的屏幕方向。
压缩音频
压缩音频支持减少了 WebGL 播放器在浏览器中用于长时间运行的背景音乐和大型音频文件的内存量。
图片压缩格式
目前移动端浏览器可以选择 ASTC 或则 ETC/ETC2 的纹理压缩格式,对于桌面浏览器,可以选择高质量的 BC4/5/6/7 纹理压缩格式
播放模式支持UDP
您现在可以在 Editor Play 模式下测试游戏的 IAP 购买和消费方法。分发门户包含一个入门指南,其中包含帮助您实施 UDP 的说明和代码示例。
动画相关
精灵片编辑器
切片选项现在允许您切片包含连续相邻等距图块的精灵表。如果您的艺术作品包含在单个图像中,这有助于加快准备等距平铺地图的过程。
Recorder 更新
Recorder 现在是一个已发布的软件包,其中包括 Apple ProRes 等新编解码器,可更好地兼容图形和实时更新,从而增强您的录制体验。
Recorder 包
最新的发布版内置了 Arbitrary Output Variable(AOV)录制,其有利于在VFX中分色和合成。本发布还为更真实的渲染效果内嵌了路径追踪和累积运动模糊功能
Alembic 包
最新的发布版可以让你从任意位置流式传输 Alembic文件,有效的绕过导入功能
Cinemachine 包
简化的 Cinemachine Impulse 大大降低了设置摄像机对游戏内事件(例如爆炸)的反应方式的复杂性
通过FBX Export 在工具间轻松交互
FBXExport 已经作为 release 包发布,导出动画场景参考并与流行的 3D 建模软件(如 Maya 和 Max)互操作以实现高效迭代。你可以在 unityeditor 内录制动画,所以你可以 导出和 重key动画。
Python for Unity
最新版的 Python for Unity 支持 Python3.7,并且不需要你再单独安装python。在进程中,Python 不会再在动态加载的时候重新初始化。PySide 示例要简单得多,并且可以在进程内运行,并且虚拟环境支持有限
HDRP
HDRP 静态阴影投射和改进
现在你可以缓存部分Non-directional shadow maps,这样可以提升性能。HDRP 每一帧 将动态阴影投射器渲染到他们各自的阴影贴图
HDRP 中添加了程序体积云
在 HDRP 12.0 中你可以修改默认的提及云设置,来创建不同 类型的真是的云。对于更高级的效果,你现在可以调整更多的参数,并可以导入纹理来进行艺术控制
Lens Flare
HDRP 12.0 包含了一个全新的 LensFlare 创建系统。你可以附加一个 LensFlare 组件到任何游戏对象。HDRP 提供了一个 包含参数预设和纹理的 flare 示例,来测试这套系统。每一个 LensFlare 包含多个你可以独立控制的元素选项。
新的升采样方法 (HDRP)
- Temporal Anti-Aliasing (TAA) Upscale 这种放大滤镜使用时间积分来产生清晰的放大图像,而不会牺牲较低分辨率的视觉质量。
- NVIDIA’s Deep Learning Super Sampling (DLSS) v2.2 这种放大过滤器使用人工智能来提高图形性能和质量。
- AMD’s FidelityFX Super Resolution: 这种放大滤镜使用平衡质量和性能的空间超分辨率方法。
路径追踪
现在您可以使用路径追踪下的体积散射来替代线性雾。体积散射同时对头发,织物,堆叠材质,特效材质提供支持。还包含了更好的 HDRI采样来改进使用了HDRI进行照明的视觉效果
云层系统
HDRP 包含了一个新的 云层体积 override,它可以在天空上渲染云朵纹理
附加属性
从HDRP12.0 开始,更多选项(More options)改名为 附加属性(Additional Properties)。现在可以通过新的方式找到他:标题栏上的小齿轮现在变成了右键菜单的一个功能,当你开启显示附加属性时,Unity 会高亮每一个附加属性的背景几秒钟,展示他们的位置
密度体积(局部体积雾)
HDRP12.0 对密度体积进行了众多改进。 密度体积(Density Volume)现在更名为 局部体积雾效(Local Volumetric Fog)
改进包括以下内容
- 可以使用一个 RenderTexture 或 Custom RenderTexture 作为体积的遮罩图
- 可以使用彩色的体积遮罩并且分辨率最大可以提升到256
- 局部体积雾距离混合有 线性和指数两种设置
HDRP12 还改进了 3D Ttexure 图集来支持不同分辨率的 3D Texture 和 RGBA 格式的 3D Texture
改进的 HDRP Decals UX
- Pivot point (轴心点) 工具
- UV 控制工具
- 支持 Transform 缩放
- 支持 prefab
- 改变 gizmo(辅助体)颜色
- 支持多选编辑
URP
最新的 URP 改进了 AO,一些从 内置管线转变到URP管线的强力工具,一些新的示例。更多细节可以参看 URP 的文档 https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@13.0/manual/whats-new/urp-whats-new.html
Scene 试图的 Debug 模式
- 可以查看材质渲染的属性
- 灯光如何影响材质
- 阴影和 LOD 操作如何执行来生成最终帧
反射探头混合和 box 投射
新的设置参数提使放射探头有更好的反射质量,并使其效果更接近内置管线
URP 延迟渲染
URP延迟渲染在所有的顶i但和片元渲染完成后,用一个分离的渲染pass,从屏幕空间进行光影着色。延迟着色将场景几何与光照计算分离,因此每个光照的着色仅针对其实际影响的可见像素进行计算。这能改进一个场景中有大量灯光的时的渲染性能
贴花渲染器
贴花渲染器可以将材质投射到场景中物体的表面。贴画包裹在网格周边,并受场景灯光影响。贴花对在场景中增加额外的细节纹理,打破材质的重复有很大的帮助
深度预渲染 (Depth prepass)
深度预渲染用一个渲染pass 将所有可见的不透明物体渲染到深度缓冲,可以共后续的渲染 pass 使用。一个深度预渲染可以减少多边形的渲染 overdraw。人后后续的彩色pass 可以复用这个深度缓冲给片元着色器使用
灯光层
可以指定的光的生效层级,只有层级相同的物体和灯光才会有效果。
URP Light Cookies
URP Light Cookies 可以屏蔽或过滤出射光强度以产生图案化照明。 使用此功能可以更改投射光的外观、形状和强度以获得艺术效果,或模拟复杂的照明场景,并将运行时性能影响降至最低。
AMD’s FidelityFX Super Resolution
这种放大滤镜使用平衡质量和性能的空间超分辨率方法。
SRP
SRP的这些特效适配 URP 和 HDRP
灯光锚点
使用 Light Anchor 功能可以围绕枢轴点而不是在世界空间中操纵灯光。这使得电影的照明更容易和更有效。各种预设可用于快速将灯光放置在角色或任何感兴趣的中心周围。 此功能也可用于内置渲染管道。
Enlighten 实时全局照明
此功能可实现间接照明响应光线和材料属性的实时变化。交互式反馈,有效减少灯光设计的迭代次数。
GPU Lightmapper tiling
新的 GPU Progressive Lightmapper tIling 功能将进行分散到能适配显存的可管理块中,减少对现存的需求并提升烘焙速度
SRP 参数设置 改进
已进行各种 UI/UX 改进以改进工作流程并提供 SRP 渲染管道之间的一致性。 这包括在 URP 和 HDRP 之间对齐灯光和相机组件。
编辑工具
地形工具
- 新的雕刻笔刷有:桥,clone,噪点,梯田,扭曲
- 高度图侵蚀工具(冲蚀,风蚀,沙蚀)
- 材质绘制新增噪点,层,基础过滤
- 使用 Terrain Toolbox 简化 Terrain 创作工作流程的实时质量界面改进
你可以基于 HDRP 绘制一些细节,例如:草,灌木,石头等。HDRP 和 URP 支持 SpeedTree8 的植被系统,包括 SpeedTree 风力系统的 ShaderGraph 创建的植被动画
Visual Effect Graph
现在可以 使用任何用 ShaderGraph 制作的着色器在VisualEffectGrpah中进行 渲染。此更改替换了 Shader Graph 中的 Visual Effect 目标,因此 HDRP 已弃用(但仍受支持)。它还允许您在顶点级别修改粒子,从而实现像带有着色器动画拍打翅膀的鸟类或像肥皂泡这样的摆动粒子这样的效果。
Signed Distance Field 有向距离厂
新的带符号距离场烘焙工具可让您直接快速地将静态几何体烘焙到可以做为 Edito 中的带符号距离场的3D纹理中
Visual Effect bounds
新的边界助手可以帮助您设置粒子的边界以提高剔除性能或防止因边界不正确而剔除粒子系统。
Structured/graphics buffer 结构化/图形缓冲区
您现在可以使用结构化/图形缓冲区将数据传递到视觉效果图。 这对于添加头发或流体运动等复杂模拟以及使用视觉效果图以编程方式分配动态数据(例如多个敌人位置)非常有用。
ShaderGraph
更新 Shader 关键字限制
着色器的关键字限制已被有效删除。现在可以使用更高效的 API 来处理关键字,并明确区分全局和本地着色器关键字
更新了 ShaderLab 包依赖语法
ShaderLab 包依赖特性扩展了 ShaderLab 语法,让着色器作者表达着色器对包的依赖关系。
使用 UI 工具包创建游戏或应用的运行时 UI
UI Toolkit 提供了用于可视化创作和调试 UI 的专用工具,使用 TextMesh Pro 渲染美观且可扩展的文本,提供外观清晰的无纹理渲染,并可与 Unity UI (UGUI) 一起使用。
2D
生产就绪的 2D 工具
此版本包括 2D 工具的可用性和稳定性改进,重点是 Sprite Swap 工作流程和 2D 图形。
2D 渲染器的改进
2D 渲染器现在包括具有以下视图的新 SceneView 调试模式:Mask、Alpha 通道、Overdraw 和 mipmap。SpriteMask 功能在 SRP 下运行正常。打卡方式 Window->Analysis>Rendering Debugger>Material Override.
您现在可以使用允许您添加自定义通道的 RenderFeature 自定义 2D 渲染器。
2D 灯光不再是实验性的,现在集成在 Light Explorer 窗口中。2D 阴影已经过优化,支持将阴影渲染到单个通道,以及逐光阴影剔除
现在可以通过 2D Light Texture 节点在 Shader Graph 中访问由 2D Lights 生成的 2D Light Texture。 这允许各种应用程序,例如为 Sprites 创建自发光材料。
VFX Graph 支持 2D 无光shader,注意 VisualEffectRenderer 不受 2D 的光的影响
新的 2D URP 示例模板
新的 2D URP 模板包括所有经过验证的 2D 工具,这些工具经过预编译以改进基于此模板的新项目的加载时间。 此模板还包括带有预配置 2D 渲染器的 URP,以及针对 2D 项目优化的默认设置的包。
UX 针对 2D PSD 导入的优化
2D PSD 导入器可以更好地控制导入的 Photoshop 图层和 Sprite 名称映射。 您现在可以在 Unity 中展平导入的 PSD 图层组,并且导入器可以为导入的图层自动生成物理形状。
在 Sprite Visibility 面板中设置单独的骨骼颜色
这可以帮助您更好地区分颜色或根据颜色组织骨骼。 蒙皮编辑器工具的工具提示现在显示它们的快捷方式,并且添加了一个新工具来查看 Sprite 对骨骼的影响。
2D 瓦片地图
您现在可以向现有 Tile Palette 按钮添加新功能或覆盖其功能,从而允许您为 Tilemaps 创建自定义工具。 新的 API 提供有关动画 Tiles 的信息,或获取一系列 Tiles。 您还可以使用 TileChangeData 结构来设置 Tile 的位置和颜色,并一次对其进行转换。
2D 物理
您现在可以使用新的统一形状组功能读取和写入原始物理形状(圆、胶囊、多边形和边)。这个新的 API 允许您将原始形状添加到物理形状组或从任何 Collider2D 或附加到任何 Rigidbody2D 的所有 Collider2D 中检索它们。此外,您可以将形状组直接写入新的 CustomCollider2D,从而提供对 Collider2D 内部的快速直接访问。您可以使用 CustomCollider2D 重现现有 Collider2D 的特征,创建新的简单 Collider2D,甚至是复杂的程序 Collider。