「团结引擎 1.2.0」来啦,继 上次大版本更新 又过了三个月,这段时间我们的研发团队一直在收集用户反馈,更新引擎功能。

本次技术更新的内容,涵盖了微信小游戏、团结引擎车机版、OpenHarmony、Audio、Virtual Geometry、Open Euler/Arm Linux 几大方向。

微信小游戏

打开网易新闻 查看更多图片

团结引擎 1.1.0 微信小游戏平台于 3 月底发布之后,受到了开发者们的广泛关注。到目前为止,已经有超过 200 款基于团结引擎支持的微信小游戏成功上线运营。与此同时,还有更多基于 Unity 开发的手机游戏正在团结引擎的支持下移植到微信小游戏平台。

在《诛仙》移植小游戏的过程中,开发者对团结引擎与 Unity 在不同机型上的表现进行了压力测试对比,可以看到团结引擎整体内存占用更低。尤其是 .NET 8方案,不仅能大大减小 wasm 的体积,还能在某些情况下获得比 IL2CPP 更高的执行效率。《诛仙》小游戏使用 .NET 8 后,在 iPhone8P 上仍然能够保持 30 帧的流畅表现。

打开网易新闻 查看更多图片

团结引擎 1.2.0 中,微信小游戏模块进一步优化了性能,并且提供了更方便的开发者工具:

○优化启动时间与加载场景时间。

○优化了 Shader 内存,占用降低。

○Asset Bundle 打包速度优化:在测试中,原本基于 Unity 2022.3.13f1 需要 155 分钟的打包时长,切换到团结引擎后缩短为 71 分钟。

○Dev Host:作为移动端 App,提供一键发布测试版。相较于浏览器,它支持更高的时钟精度,提供更强的 Debug 和 Profiling 能力。此外,还为开发者提供了 CPU、帧率、内存监控、启动时间等信息。

○深度集成微信 SDK。

团结引擎车机版

打开网易新闻 查看更多图片

团结引擎 1.2.0 版提供对车机 HMI Android、QNX、Embedded Linux 三个平台的稳定支持并进行了多项改进。

基于量产客户的实际车载应用场景验证,新增了诸如 URAS Demo Package、Asset 加密、工程隔离支持 Burst 等能力,并在三个平台上对于多屏幕渲染进一步支持,同时提升了架构的稳定性,为车机应用开发者提供更好的开发体验。

HMI Android

基于量产上车经验,URAS 架构进一步升级,在 Vulkan 多线程渲染支持、New Input System 支持、Audio 模块调用逻辑优化、Touch 事件处理支持等方面均有提升,同时完善了各使用场景下的 Pause 机制和多 Client 渲染的调用机制,提升 URAS 的整体稳定性。在 1.2.0 版本中,URAS 工程隔离模式进一步扩展,在此前版本的基础上,额外支持 Burst、Asset 加密、Streaming Asset 等功能。

为了更好地服务于车载多屏幕场景,HMI Android 在常见的 60 帧刷新率的屏幕支持以 45 帧渲染,在多屏渲染时支持关闭指定屏幕的输出,进一步提升在多屏应用场景下的灵活性,降低性能开销。

为了帮助每一位车机应用开发者更好、更快地熟悉和理解 URAS,零门槛上手开发,URAS Demo Package 已在 Tuanjie Package Manager 中上线。Package 中内置简易车模、通用接口调用逻辑等,通过 Package Manager 导入并安装后,可通过导览窗口快速选择不同模式进行 Export、Build 等操作,也可根据提醒 Step by Step 进行 URAS 工程隔离模式和跨进程模式开发,实现在 Tuanjie Editor 中一键掌握 URAS 并基于此 Demo 进行快速开发。同时,URAS Demo Package导出的 Android Studio 工程内置配置好 Tuanjie View 的 UI 界面,实现真正意义上的开箱即用。

URAS Demo Package 示例视频:

打开网易新闻 查看更多视频
「团结引擎1.2.0」正式上线!功能全面升级

在启动时间上,通过实际车载 APP 的验证,团结引擎车机版 1.2.0 HMI Android 进一步提升。

HMI Android 启动时间对比图:

打开网易新闻 查看更多图片

QNX & EmbeddedLinux

1.2.0 版本的团结引擎车机版更好地支持 QNX 和 Embedded Linux 的多屏输出场景,在保证 QNX 和 Embedded Linux 稳定性的基础上,进一步提升性能。

在 8295 台架的 QNX 系统经过实测,团结车机版具有更好的性能表现,空场景下,热启动时间相比于 Unity 2021.3 约有 56%(无Splash)和 40%(有 Splash)的提升,冷启动时间基本持平。团结引擎车机版 QNX 多屏渲染,也有更好的表现,可支持三个屏幕同时稳定 60 帧渲染,且可分别叠加 UI。

QNX 启动时间的对比图:

打开网易新闻 查看更多图片

OpenHarmony

打开网易新闻 查看更多图片

团结引擎 1.2.0 版本进一步完善了对 OpenHarmony 的各功能模块支持,主要新增了以下支持:

○新增陀螺仪 API 支持;

○新增获取网络状态 API 支持;

○新增录音时权限申请功能、调用 Application.internetReachability 时自动添加网络权限功能;

○新增应用分屏功能支持;

○新增对 Display.main.systemWidth/Height、Sceen.orientation、Input.DeviceOrientation 接口支持;

○新增对 .etslib 类型的插件支持以及相关的 arkts 文件修改;

○新增设置 JDK 路径时合法性校验。

升级 SDK 支持 API11

团结引擎 1.2.0 版本现已升级 OpenHarmony SDK 至 4.1 Release 版,支持 API11,覆盖 API11 中的新功能,同时也根据 API11 优化了现有功能,具体如下:

○升级了文件系统 API,解决了 API10 读取文件超过 2G 异常问题;

○使用新的 API 修复了应用切换到状态栏没有暂停的问题;

○音频上,增加了对 OHAudio 的支持,实现替换 OpenSLES,解决了此前游戏音频和音乐不能同时播放的问题;

○修改了 NativeWindow 的 Usage,有效降低了 DDR 带宽消耗。

修复问题

团结引擎 1.2.0 版本也修复了开发者反馈的一系列 bug,主要如下:

○视频花屏以及锁屏后播放卡顿问题;

○修复 PlayerPrefs 重启后失效问题;

○修复 OpenharmonyJSObject 无法获取 TypeScript中bigint 类型变量的数值的问题;

○修复了多线程渲染下折叠屏出现卡死的问题。

支持从 Hub 下载 OpenHarmonySDK 和 JDK

针对此前无法在 Hub 中直接下载 OpenHarmony SDK 的问题,团结引擎 1.2.0 现已支持在安装 OpenHarmony Build Support 时选装 OpenHarmony SDK、JDK,在 Hub 中可以直接勾选下载:

打开网易新闻 查看更多图片

同时,团结引擎会根据安装版本自动选择对应的 SDK 版本。由于 OpenHamrony 不同版本 SDK 兼容性有差异,比如语法要求不一样、配置字段不一致等问题,推荐大家在安装时勾选并自动安装 SDK、JDK。安装完成后,仅需在 Preferences 里面勾选 Installed with Tuanjie,Editor 即可自动识别 SDK、JDK 路径:

打开网易新闻 查看更多图片

支持兼容读取 Adroid 平台的 AssetBundle(预览版)

为了帮助广大开发者快速地将原有 Android 项目切换到 OpenHarmony 平台,团结引擎 1.2.0 新增了对 Android 平台 AssetBundle 读取的支持,开发者可以复用 Android 平台的 AssetBundle,提升开发效率。

Audio

打开网易新闻 查看更多图片

团结引擎 1.2.0 版本开始支持 Load in Background 选项。对于背景音乐之类的长音频文件,勾选 Load in Background 选项可以明显减少主线程的加载时间,游戏启动和场景切换将更快。我们在这个版本还添加了多声道输出的支持,相比之前版本的双声道,最新版本可以最多支持到 8 声道。

另外,为了帮助部分用户在团结上继续使用以往 Unity 版本打包的 AB, 我们在团结引擎 1.2.0 版本中增加了对 Unity 音频 AB 的支持。稳定性方面,团结引擎 1.2.0 版本也解决了以往在长期挂机或者连接远程桌面时,容易出现的 Editor 卡住问题;使用后台加载音频后概率性出现 crash,播不出声音的问题也得到修复。

打开网易新闻 查看更多图片

在 Android 平台上,团结支持选择 AAudio 或 OpenSL 来播放声音。在 Android 8.1 及之后的系统上,引擎默认使用 AAudio backend 以获得更低的延迟。当遇到部分机型 AAudio兼容性存在问题时,用户可以在 PlayerSettings->Audio 页面设置使用 OpenSL,以获得更好的兼容性。相比之前的版本,团结引擎 1.2.0 音频系统启动时间也有所减少,相比 Unity 版本,降低了约 40%。

打开网易新闻 查看更多图片

Virtual Geometry

打开网易新闻 查看更多图片
打开网易新闻 查看更多图片

虚拟几何体支持 Foliage&Vegetation:

在团结引擎之前的版本中,虚拟几何体只能应用在不透明物体上;而对于 Foliage&Vegetation(alpha clip 材质)无法开启;而 Foliage&Vegetation 是我们场景中非常常见又大量存在的类型,我们需要一种办法来高效的渲染他们。在团结引擎 1.2 版本中,我们支持了 Foliage&Vegetation 的虚拟几何体功能。这可以让您在场景中放置大量植被,当打开他们的虚拟几何体功能后,可以获得更好的性能表现。

打开网易新闻 查看更多图片

新的 light probe per pixel 模式:

为了使虚拟几何体更好的适配 light probe,我们新增了此 per pixel 模式。在原来的 light probe 模式中(比如 blend probe),light probe 的采样是基于每个物体位置在 CPU 完成的,这就导致 light probe 对于大物体的间接光表现的效果不太好。为了更好的和虚拟几何体适配,我们提供了新的 per pixel 模式,它完全是基于 GPU 来采样的,SH 不再基于物体的位置,而是基于像素位置,因此它可以提供更加自然的间接光照明。

Open Euler/Arm Linux

打开网易新闻 查看更多图片

在团结引擎 1.2.0 版本中,我们基于已有的 OpenEuler 支持,新增了针对 ARM Linux 平台的 OpenEuler dedicated server 构建功能。这个新功能为开发者提供了更多选择,尤其是那些专注于高性能、低功耗服务器环境的开发者。

OpenEuler dedicated server 可以用于逻辑计算处理的非渲染应用场景。团结引擎的 OpenEuler dedicated server 支持,意味着开发者现在可以在 ARM 架构的高性能的国产芯片服务器上运行团结引擎应用。这一功能主要有以下几个亮点:

高性能与低功耗结合

ARM 架构以其高效能和低功耗闻名,这对于运行需要长时间持续服务的服务器端应用尤其重要。通过在 ARM Linux 上运行 OpenEuler dedicated server,开发者可以显著降低服务器的功耗,同时保持高性能和稳定性,适用于对能效要求较高的应用场景。

广泛的硬件兼容性

ARM 架构的设备种类繁多,从树莓派等开发板到高性能的服务器硬件,团结引擎的 OpenEuler dedicated server 支持多种 ARM 硬件。这为开发者提供了广泛的硬件选择,能够根据项目需求和预算灵活配置服务器环境。

一致的开发体验

团结引擎提供一致的开发体验,无论是针对 x86 还是 ARM 架构,开发者都可以使用相同的工具链和开发流程。这意味着开发者无需额外学习新的开发工具或流程,就能轻松将现有的服务器端项目移植到 ARM Linux 平台上。

云端部署优化

随着 ARM 架构在云计算领域的逐渐普及,许多云服务提供商已经开始提供基于 ARM 的服务器实例。团结引擎 OpenEuler dedicated server 的支持使得开发者能够更方便地在云端部署和扩展他们的应用,充分利用云服务的灵活性和成本优势。

以上就是此次团结引擎 1.2.0 版本的重大内容更新,非常期待得到你的反馈,与我们一起共建中国版的实时 3D 引擎。

同时,在即将到来的 Unite Shanghai 2024 大会上,我们也邀请研发团队带来为期一天半的精彩演讲,速速报名码住!

[1] 团结引擎官网:

https://unity.cn/tuanjie/tuanjieyinqing

[2] 团结引擎专区:

https://developer.unity.cn/plate/tuanjie-engine

[3] 团结引擎问答专区:

https://developer.unity.cn/plate/tuanjie-engine?tab=ask

Unity 官方微信

第一时间了解Unity引擎动向,学习进阶开发技能