查看原文
其他

Unity 2018.2正式版功能介绍(下)

Unity Unity官方平台 2018-11-15

我们在Unity 2018.2正式版功能介绍(上)Unity 2018.2正式版功能介绍(中)向大家介绍了Unity 2018.2中的图形、粒子系统、2D、影视、编辑器方面的改进。今天我们将向大家介绍Unity 2018.2中核心引擎功能的改进


友情提醒:

  • 请大家一定阅读Unity全新的版本发布计划,Unity 2018.2属于Tech版本,带来更多是新功能和新特性。本文标题中正式版即指正式发布的版本。


  • 你可以从Unity Hub或下面地址下载Unity 2018.2:

    https://unity3d.com/get-unity/update


可寻址资源系统

可寻址资源系统(Addressable Asset System)能够轻松管理构成游戏的所有内容,例如:预制件、纹理、材质、音频剪辑和动画等。随着项目数量的增长,资源的数量也会增加。用户必须聪明地引用这些资源,否则游戏中的所有内容包括本地内存和内容分发都将变得难以管理。

 

因为资源引用通常在构建时解决,你将更难管理内容分发策略,而用户为了进行修改经常要面对大量重构内容。

 

全新的可寻址资源系统将可以在游戏规模扩大时让你的团队更容易的进行扩展。这个系统分离了运行时资源管理中的三个主要问题:引用、打包和分发。不管是在本地机器上还是通过CDN实现的在线分发,可寻址资源系统都化了引用内容的过程,因为内容会自动载入和卸载来更好地管理内存。我们还提供了性能分析工具来进一步优化内存使用。最终,此功能将为你带来更短的迭代时间。


https://v.qq.com/txp/iframe/player.html?vid=p0726s14qho&width=500&height=375&auto=0
全新的可寻址资源系统将独立发布。它目前仍处于预览阶段,可以通过资源包管理器作为附加内容获取。


高DPI显示器支持

如果你拥有4K显示器,现在你可以在编辑器中享受Linux和Windows上的高DPI缩放支持,此功能还支持在Windows上按照不同的显示比例进行缩放。


C# Job System、实体组件系统和Burst Compiler

1

C# Job System

随着我们在Unity 2018.1中推出新的高性能多线程系统,我们正在重构Unity的核心基础。新的系统将使你的游戏完全利用当下的多线程处理器,不用再为编程而烦恼。


这得益于全新的C# Job System,它为用户提供了一个安全简易的沙盒环境,能够在里面编写并行代码。我们还引入了新的模型来默认使用实体组件系统(ECS)编写高性能代码,并使用Burst Compiler声称高度优化的本地代码。

 

有了默认提供的高性能,你不仅可以在更多的硬件上运行自己的游戏,还能使用更多的单位和更复杂的模拟效果来创建更丰富的游戏世界。

 

2

实体组件系统(ECS)

在Unity 2018.2中,我们加入了多个改进内容,包括反应系统(Reactive system)示例。反应系统将使你在组件状态发生变化时做出反应,并模拟由事件驱动的行为。

 

我们还将提供有关如何使用ECS实施反应系统的大量示例和文档。今年的下半年,我们还将提供由Unity用户制作的小型Unity游戏示例,我们会将这些示例转换为ECS。

  

3

Burst Compiler

在Unity 2018.2版本中,Burst Compiler for ECS可以在所有编辑器支持的平台Windows、Mac和Linux上使用,你将能够为独立安装包构建AOT,这些安装包包括桌面端、PS4、Xbox、iOS和Android。

 

在向Unity 2018.3迈进的过程中,我们还会继续专注改进ECS的性能,发布确定性系统的一个预览版,并支持更多.NET C#语言结构,例如:DllImport、常量数组和foreach等。我们的目标是在Unity 2018.3期间使Burst Compiler脱离预览阶段。


移除旧版本基于RakNet的网络功能

RakNet是我们之前的网络功能,它在Unity 5.1中就被逐渐弃用,在Unity 2018.2中被彻底移除。这意味着任何使用RakNet的项目都不适用于此版本。


弃用UWP所使用.NET脚本后端支持

自从Unity 2018.1起,我们就在通用Windows平台 (UWP)上支持了二个脚本后端:.NET和IL2CPP。在Unity 2018.2中我们弃用了对.NET脚本后端支持。这次弃用的原因有二个方面。

 

1

更容易将游戏移植到UWP

启用是为了让开发者更轻松的移植游戏到UWP。过去很多开发者在将游戏移植为UWP时所遇到的问题,主要是因为底层API区的不同,以及.NET Native、Mono、和IL2CPP这些其它平台运行时之间的差异造成的。这一大变化将让大多数开发者更轻松地将游戏移植到UWP平台上。

 

2

帮助我们提供更好的支持

这次弃用的第二个原因是为了让我们通过有效解决问题来,更好地为用户提供支持。由于.NET脚本后端完全与其它Unity平台的运行时不同,对我们而言,相较于Unity的其它部分,维护稳定的质量等级是一个大难题。这次弃用将使我们花费更少的时间来维护.NET脚本后端,并拥有更多的时间来处理对用户而言更为重要的功能和问题。

 

IL2CPP拥有和其它Unity平台相同的.NET底层API,而且IL2CPP已经支持访问WinRT类型和相应API。因此,通过在Unity 2018.2中添加IL2CPP管理的调试器,IL2CPP的开发者体验现在达到了与.NET脚本后端提供的同一水准,并且更优于脚本后端的体验。

 

从Unity 2017.2开始,编辑器就默认使用IL2CPP,所以我们认为多数用户使用时不会遇到任何问题。如果你还没有尝试使用IL2CPP,而且遇到过一些问题,请务必提交问题,让我们了解。我们计划在Unity 2019.1结束.NET的脚本后端支持。


IL2CPP托管调试器

现在可以使用IL2CPP托管调试器,它帮助开发者使用偏好调试器来找到并修补错误,即使在使用IL2CPP时也能进行。

 

所有调试功能将支持Visual Studio(使用Visual Studio Tools for Unity)和JetBrains Rider,PlayStation 4、移动端平台和Xbox One等独立安装包的调试预计在未来提供。


Unity 2018.2中的脚本运行时改进

我们从.NET 4.x开始收到的各种用户反馈,Unity 2018.2推出了与脚本运行时相关的大量错误修复。


Android ARM64位支持

在Unity 2018.2中,基于IL2CPP的Android ARM64位支持正式脱离预览阶段。这将为你提供性能优势,因为64位Android应用程序和游戏将能够利用4GB以上的内存空间。

 

根据架构分离APK文件

现在新增一个选项用来根据目标架构,如x86、ARM 32和ARM 64分离出多个APK文件,而不是生成一个较大的APK文件。然后,对于支持此选项的商店,例如Google Play,你只需要下载相应架构的APK文件即可。


C#平台证书库同步功能

Unity现在完全支持.NET 4.x和UnityWebRequest API等所有平台上的现代加密协议TLS1.2。这包括针对特定平台的证书库自动验证功能。

 

在不提供系统库存验证访问功能的Xbox One和PS Vita平台上,我们使用嵌入式CA库来进行验证。


Google Play Instant Games插件

获取新用户的一大阻碍往往是因为繁琐的安装过程。下载并打开应用程序需要花费时间,这会导致不少用户还没体验游戏之前就放弃。

 

有了Google Play Instant,用户不需要预先安装就可以尝试体验游戏的10MB版本。此插件简化了基于Unity的Android应用转换为即时应用的过程,并可以通过Google Play Instant来进行部署。

 

https://v.qq.com/txp/iframe/player.html?vid=n0609srau8r&width=500&height=375&auto=0

该插件在GitHub上作为一个项目提供,并且能在Unity 2017.x及更高版本上使用。

 

该插件的功能包括:

  • 可在已安装(Installed)和即时构建(Instant-build)模式之间切换的选项。

  • 带有Unity构建设置上的集中式视图和Android安装包设置,这些设置经过修改后能够支持Google Play Instant。

  • 能够在连接ADB的Android设备上构建并运行即时应用。


结束对UnityScript的支持

Unity 2018.2中我们结束了对UnityScript的支持。了解详情,请阅读:告别UnityScript,Unity将仅支持C#脚本编程

 

我们作出这个决定的原因是,随着我们继续更新脚本运行时和支持的C#版本,C#将能实现更多可能性:

  • 通过脚本运行时更新,开发者可以使用.NET 4.6及更高版本的C# 7。

  • JobSystem让开发者能够轻松编写多线程代码,从而避免出现竞态条件和死锁。

  • NativeArray类型允许开发者创建和使用由本机代码控制和存储的大型阵列,这样可以更好地控制分配行为并消除垃圾收集问题

  • 开发者可以控制脚本编译管线,自定义脚本和程序集的组合方式。

 

另外,Asset Store资源商店已经停止接受包含UnityScript代码的新资源包,并且移除了原来带有UnityScript的资源包。

 

最后,我们提供了一个将UnityScript转为C#代码的自动转换工具,虽然已经出现有一些这样的工具,但这些工具所用的方法我们认为并不合适。所以我们决定应用这些知识构建自己的解决方案。

 

下载UnityScript转为C#代码的自动转换工具:

https://github.com/Unity-Technologies/unityscript2csharp


Visual Studio Code调试器扩展

对于使用Visual Studio Code作为IDE的用户,我们开发并维护了Visual Studio Code Debugger for Unity扩展,它目前作为预览版推出。


 

请注意:我们还在进行更新,使之支持在Unity的Mono运行时中调试C#并解决报告的错误。


发行说明

Unity 2018.2还包括183项改进内容和1426个错误修复。请查看发布说明来了解所有新功能、改进和修复的信息。


Unity 2018.2发行说明:

https://unity3d.com/unity/whats-new/unity-2018.2.0


总结

Unity 2018.2正式版的所有新功能和改进,我们就为大家介绍到这里。更多Unity新功能和新特性尽在Unity官方中文技术论坛(UnityChina.cn) !


推荐阅读


官方活动

实时优化,智造收益 - Unity Monetization开发者生态沙龙

8月3日,Unity将于举办为期半天的Unity Monetization开发者生态沙龙!本次活动将与大家共同探讨移动游戏开发与变现相关难点与痛点。[了解详情]


报名地址:

https://connect.unity.com/events/unityads


7月Asset Store资源商店促销 

7月,只需在Asset Store资源商店消费满30-199美元,最高可获得价值235美元的5款免费资源,参与活动,获得夏日精选资源包。

活动地址:

https://assetstore.unity.com/g/july-promo-activation-cn



点击“阅读原文”访问Unity官方中文论坛

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存