在3月12日,我们将为白鹭引擎推出5.1.6 版本。5.1.6版本是对去年12月份发布的5.1版本的一次功能更新和集中性缺陷修复,主要目标是添加新的 iOS/Android App 打包支持,以及完善微信小游戏、QQ玩一玩、AssetsManager的稳定性。 iOS/Android 原生打包 在这次更新发布的 Egret Launcher 中,我们在发布设置中整合了iOS 与 Android 平台的发布设置。 自2014年底起,白鹭引擎推出的2.0 版本便已经支持开发者将游戏打包为 iOS / Android App 发布到原生平台中,除此之外,2017年我们又推出了微端解决方案。在这次更新中,我们将 iOS / Android Support 的底层内核切换为了微端内核,并添加了新的 NativeRenderer 机制,大幅提升了打包后的 App 的渲染性能。 之所以会有如此重大的提升,这是因为在之前的 iOS / Android Support 中,原生内核虽然提供了优化后的 HTML5 Canvas2D / WebGL 渲染接口,但是核心渲染驱动仍然是由 JavaScript 逻辑执行的,在新推出的 NativeRenderer 中,渲染驱动逻辑从 JavaScript 端迁移到了 Native C++ 端,这样做会大幅降低 JavaScript 引擎的负担,特别是在所有的 iOS 设备以及低端 Android 设备中表现极其明显。 需要注意的是,由于在 iOS / Android 上的渲染驱动迁移到了 Native 端,开发者不再能够通过 Hack 引擎的 JavaScript 代码的方式去修改打包后的渲染行为。这相当于我们牺牲了一定的灵活性换来了更高的性能,如果开发者希望保留这些灵活性,您也可以强制关闭 NativeRenderer ,仍然使用之前机制。 NativeRenderer 已经在数个正式发布的产品中得到了使用,除了实际产品验证之外,NativeRenderer 也通过白鹭自研的内部自动化测试系统中进行了200余个测试用例的测试,目前绝大部分测试用例均已通过。 在尚未通过的测试用例中,以下图为例,我们可以看出,iOS 打包无论使用旧的 JavaScriptRenderer还是新的NativeRenderer ,发光滤镜、颜色变换滤镜和模糊滤镜的渲染结果均完全一致,但是投影滤镜仍然存在一些肉眼较难发现的问题。这些问题我们会逐步解决,如果您在使用中发现了问题,也欢迎您贡献测试用例给官方。 NativeRenderer 需要白鹭引擎 5.1.5 以上的版本才可以使用。 除了 NativeRenderer之外,本次更新还带来了如下内容: 2D 渲染 - JavaScript 修复设置一次虚线后,后续所有绘制均为虚线的BUG 修复 DragonBones Mesh 渲染旋转在特定情况下的渲染BUG AssetsManager 现在您可以为不同的资源配置文件设置不同的资源加载根路径,通过与 ResSplitPlugin 插件配合,可以用于更方便的解决微信小游戏的 4M 资源包限制问题 微信小游戏添加 canvas2d 模式渲染支持,以解决部分设备在微信小游戏中使用 webgl 模式渲染错误的问题 修复特定情况下在真机上资源加载失败的 BUG QQ 玩一玩 修复了BitmapText字体位置偏移的问题 增加了底层背景,在启动项中增加了背景颜色的设置 修复了DisplayObject scrollRect无效的问题 修复了EUI scroller显示错误的问题 白鹭引擎发布 5.1.6 优化打包 iOS/Android App 的运行性能下载地址