Unity 2021.1 beta版在Tech Stream上发布,该版本更新了视觉脚本、编辑器、脚本编写等功能,Unity 2021.1 Beta版不适用于生产阶段的项目。


Unity新功能介绍


01
视觉脚本


Unity 2021.1将可视化脚本集成为其核心功能的一部分。可视化脚本帮助所有团队成员使用可视化的拖放图创建脚本逻辑,而无需手工编写代码。设计师可以在编辑器中完成更多工作,而无需程序员的帮助,而程序员可以快速实现想法,以便更快地进行原型制作和迭代。

视觉脚本工作流程已与其他Unity工具进行了调整,并且某些菜单,窗口,节点,概念或名称空间已重命名以保持一致性。视觉脚本的扩展将需要更新和重新编译。来自第三方的具有视觉脚本内容的视觉或文档可能与此新版本有所不同,需要进行更新。

通过在此Beta版中启用“预发布软件包”,可以在软件包管理器中显示Visual Scripting软件包。可视脚本首选项已集成到Unity Editor首选项和项目设置中,但不可以将包含Bolt数据的项目迁移到此预发布版本。

可视化脚本优化了工作流程。图形编辑器中Blackboard和Graph Inspector已合并到一个窗口中,并且第一次打开图形窗口时会自动生成单位。提前(AOT)预编译是自动的。可视化脚本现在为新的输入系统提供了专门的支持。要获得新节点,需要在添加输入系统包后重新生成单元。

URP中的点光源阴影支持:点光源阴影可以在场景中创建更逼真的灯光,手电筒,篝火和其他本地光源模拟。

用于HDRP的静态阴影投射器:静态阴影投射器可让您仅缓存一部分非定向阴影贴图。通过此设置,HDRP会基于灯光的更新模式将静态阴影投射器的阴影渲染到阴影贴图中,但会将动态阴影投射器渲染到每一帧的相应阴影贴图中。对于灯光不动或不频繁但仍需要投射动态阴影的项目,提高性能。

SRP2核心:图形包被重新定位到Unity的核心。可以简单使用Unity新图形功能,并在经过验证的图形代码上运行项目。对于Unity的每个发行版(alpha,beta或Tech Stream),图形代码都嵌入在Unity主安装程序中。安装最新版本的Unity时,就会有最新版本的URP,HDRP,Shader图和VFX图。


02
编辑


纹理:了多项优化以实现更快的纹理导入,包括纹理压缩。

编辑器可用性:在Gizmos窗口中添加了新的“搜索”字段,在“控制台”窗口中添加了“重新编译时清除”选项。也可以设置MeshFilter.mesh属性的动画,还改进了LODGroup UI。

搜索:快速搜索包已通过更新的UI直接添加到编辑器中,以实现更好的集成。

Unity本地化:包括Global Variables ,更容易使用智能字符串。全局变量在更改时会触发自动更新,可以无需跟踪单个UI值。另一个功能是“定制全局变量” ,可以将其分组和嵌套。新实现的回退支持使您可以设置回退语言环境,以便在存在未翻译的字符串或资产时,使用以前指定的语言。还可以提取可用于生成TextMeshPro字体资产的字符集。


03
脚本性能


从资产导入,构建和部署到编辑器内迭代,我们专注于在整个开发生命周期中提高团队的生产力。

IL2CPP :进一步的改进减少了现有的IL2CPP转换和C ++编译时间。并行转换的许多小优化的集合逐步改善了项目转换。

C#脚本编译:编辑器内部和播放器内部编译现在都以增量方式执行,以减少等待时间。

Visual Studio:删除此集成。

UnityLinker :所做的更改改进了方法主体剥离,C#反射检测和委托剥离,所有这些都减少了IL2CPP将剥离后的程序集转换为C ++所花费的时间以及可执行文件的大小。

精确时间API :新的精确时间API Time.timeAsDouble引入了许多AsDouble属性,并允许开发人员在其项目中使用双重精确时间。利用具有长时间运行的应用程序(例如专用游戏服务器)的用户,使用此API将有益。

代码覆盖率:代码覆盖率是一个预发布软件包,旨在在此发布周期内获得已发布状态。最新版本包括一些新功能和改进,包括路径过滤,该功能使您可以指定要包括或排除在覆盖率报告中的文件夹和文件;窗口>分析下的新窗口位置;新的CodeCoverage.VerbosityLevel API,该API可让您在编辑器和控制台日志中设置代码覆盖率日志消息的详细程度;以及批处理方式下的新AssemblyFilters别名(<用户>,<项目>和<程序包>),用于引用要包含或排除的一组程序集。也,ExcludeFromCoverage属性。

Profiler:更新提供了对所有在一台计算机上运行的多个播放器和服务器进行配置的功能,以测试多人游戏体验,并允许开发人员指定配置文件应附加到的播放器实例。它还包括一个更可靠和持久的探查器样本选择工作流程,其中包括一个API。这使开发人员可以将一个部分标记为样本,然后针对同一样本标记查看不同的可视化效果。

Memory Profiler :此实验软件包添加了一些步骤,以确保报告所有与托管类型相关的数据。它还包括改进的纹理和网格内存报告以及对静态参考数据的更好抓取。


04
美工工具


ProBuilder v5.0 :此软件包提供了一些工具来提高关卡设计人员和灰盒工作流程的可用性。新版本具有点对点切割工具,该工具使您可以在ProBuilder网格的表面上进行切割,以在不同的子面上创建原始面的划分。当使用场景中的“形状创建”工具创建新形状时,该版本还提高了精度和准确性。

Cinemachine v2.7 :为物理摄像机提供全面支持,使用物理摄像机的用户现在可以控制Cinemachine虚拟摄像机的所有参数。该2D照相机confiner进行了改进,所以相机可以使用复杂的边界被限制。现在支持时间轴清理,这使得可以缓存过程相机运动以在时间轴上获得确定的结果。Cinemachine菜单已移至GameObject菜单下,以与其他形式的对象创建对齐。

时间轴:其最新的软件包版本包括通过示例改善质量和稳定性,对生活质量API进行了多种更改以实现可定制性以及日语翻译。

FBX Exporter:在2021.1中成为已发布的程序包,并包括稳定性方面的改进。该软件包导出用于动画的场景参考,允许用户与流行的DCC(例如Maya和Max)进行互操作。还可以在编辑器中录制动画,这使用户可以将对Maya和Max的引用导出,以便他们可以重新设置动画的关键点。

Unity Alembic:Unity Alembic软件包可以将Alembic文件导入(或导出)到Unity Scenes中,在其中直接在Unity中回放和录制动画。它从3D建模软件中引入了顶点缓存数据,例如面部动画(蒙皮)和布料模拟(动力学),从而可以确保在Unity中所做的工作与在DCC中所做的工作完全相同。

适用于Unity的Python :此实验包包含一个Python 3版本,可在Unity编辑器中运行Python工具,如果团队需要与基于Shotgun或TensorFlow的基于Python的工具或内部自定义管道进行通信。


05
2D工具


精灵编辑器:现在,切片选项允许您切片包含连续相邻等距图块的精灵图纸。如果您的作品是在一张图像中完成的,这有助于加快等轴测图的准备过程。切片为大量纹理的性能也得到了改善。

Tiles和Tilemaps:此版本包括对Tilemaps和Tile Palette的若干修复和可用性改进。可以从“拼贴面板”和“小控件”菜单中的“场景视图”切换网格和小控件的可见性。泛洪填充功能可以选择仅绘制连续图块,还可以对Tilemaps动态批处理,这可与具有辅助纹理的GameObjects一起使用。

2D渲染器:支持URP中使用的材质属性BaseMap,使SpriteRenderer,TilemapRenderer和SpriteRenderer直接设置URP或使用Shader Graph创建的着色器的漫反射纹理。

2D渲染器中的“相机对图层排序”纹理:可以在着色器中访问和操纵此纹理。此应用程序包括创建类似于URP中的不透明纹理的水或热雾效果。

SpritePostProcess :使用更少的内存,尤其是在处理大量Sprite时。

Sprite Swap:此 工作流程现在是常规Sprite工作流程的一部分(而不仅仅是在Sprite Editor中用于2D动画的蒙皮)。2D动画包现在包括一个集中的Sprite库,该库包含其角色,道具或其他视觉资产在任何给定时刻可能需要的所有潜在自定义设置。

2D SpriteShape:这是一种基于社区反馈开发的新细分方法。通过使用作业来避免垃圾收集,它提供了更好的性能,使您能够在运行时更高效地生成或修改动态SpriteShape对象。当大小和内存是项目的重要约束时,此功能也很有用。


06
平台类


设备模拟器:以前以预览包的形式提供,现在作为默认功能作为编辑器的一部分提供。Device Simulator通过模拟Screen和SystemInfo类的行为来扩展传统的Unity Editor游戏窗口,以准确显示应用程序在设备上的外观。转换更改了模拟API的方式,现在需要一个新的名称空间UnityEngine.Device模拟屏幕,应用程序和系统信息。

1
2
3
UnityEngine.Device.Screen;
UnityEngine.Device.Application;
UnityEngine.Device.SystemInfo;

通过将以下内容添加到要在模拟器中使用的每个脚本中,可以轻松切换到UnityEngine.Device:

1
2
3
using Screen = UnityEngine.Device.Screen;
using Application = UnityEngine.Device.Application;
using SystemInfo = UnityEngine.Device.SystemInfo;

新的名称空间UnityEngine.Device将通过运行时构建从模拟器(在编辑器中)平滑过渡到实际的设备API。

Android:从2021.1开始,Unity需要由Unity Hub安装的Android NDK r21 。

AR Foundation:版本4.1包括ARKit和ARCore的更新,例如 对深度纹理的支持以及AR Occlusion Manager的扩展功能,例如自动 环境遮挡。

XR Interaction Toolkit :使用此预发布软件包,可以跨平台为AR和VR体验添加交互性,而无需从头开始编写交互代码。在2021.1中改进了XR Interaction Toolkit,包括流畅的移动,对Unity Input System的支持,无需输入到设备即可模拟输入的键盘/鼠标模拟,Inspector窗口中属性的改进布局以及新示例适用于URP。

平台支持:在2021年及以后的整个周期中,Unity将继续在下一代平台上支持Xbox和PlayStation开发人员。