LayaAir3.3.4新增资源依赖查找、适配HarmonyOS6、优化文本渲染等,本月又发多个分支版本

由于 LayaAir 3.4 还在憋着更大的招,所以部分 3.4 的功能提前"溢出"到了今天发布的 3.3.4 里。于是,计划只修BUG的 3.3.4 出现了不少实用的新功能和优化。

下面将详细介绍这个重磅更新的小版本。

1、新增 "资源依赖" 面板

在本次版本中,编辑器新增了 "资源依赖"工具面板,用于帮助开发者快速分析资源之间的引用关系。无论是排查丢失资源、清理工程、替换素材,还是进行批量资源管理,这个工具都能显著提升项目维护效率。

该面板可以通过编辑器顶部菜单打开,也可以在项目资源面板中,对任意资源点击右键并选择 "查找引用" 直接进入。

"查找引用" 的作用不仅是找出一个资源被哪些场景、预制体或其它资源引用,还适用于定位已经丢失的资源。

例如:当某个资源被误删后,组件资源属性处会显示为 UUID。只需输入框右键复制这个 UUID,再粘贴到查找引用面板的输入框中,就能直接找出所有引用它的资源。

在引用结果中,开发者可以直接拖入或选择新的资源,然后点击"替换",即可将所有引用资源一次性替换成新的目标资源,实现真正意义上的 一键替换。这在项目重构、统一美术资源、修正错误资源、升级旧素材时尤其高效。

在某些应用场景中,并不是所有引用都需要替换。此时,只需在结果列表中选择不想参与替换的资源条目,右键选择 "从列表中移除",这些资源就会从替换范围中排除。这样既灵活又安全,避免了误替换带来的问题。

资源依赖的另一个重要功能 "查找依赖" 则是从反方向分析资源的依赖链,帮助开发者快速了解资源构成。

例如,一个预制体依赖哪些贴图、材质、模型、脚本文件等。面板会以清单形式列出所有依赖项,有助于评估资源与贴图数量、脚本数量等,排查异常缺失或重复依赖问题。

同时,插件系统也提供了相关的功能接口,核心类是IEditorEnv.AssetDependencyTool。

示例代码:

javascript 复制代码
let result = await IEditorEnv.AssetDependencyTool.queryReference([    "45897bb8-a4bd-4607-a70e-ba1a7546882f"]);

通过这些接口,开发者可以轻松实现资源分析、批量替换等一系列自定义工具,让资源管理流程更加高效可控。

2、其它的IDE与引擎更新

除了**"资源依赖"这个重要模块外,在IDE与引擎中,本次版本还有大量的实用更新,下面将逐个介绍。**

2.1

IDE快捷操作优化

在快捷操作方面。本次版本中,IDE 新增了"激活上一个标签页"的快捷键设置。设定好快捷键后,开发者可以仅通过键盘,在两个高频使用的场景或预制体标签页之间来回切换,无需鼠标点击,进一步提升跨模块的界面编辑效率。

调整属性时,0.5(居中)和 1(全量)是比较高频的数值。本次版本开始,开发者只需在属性面板的标题上点击右键 ,即可在弹出菜单中快速将数值设为 0.51。无需键盘参与,仅鼠标操作即可完成,调整锚点、缩放、透明度等需求时,会更快一步。

2.2

脚本插件发布优化

本次版本中,脚本与插件管理流程也进一步得到优化。对于被标记为"导入为插件"的 JS 脚本或 WASM 文件,现在可以直接在属性面板中为其指定目标平台。设置完成后,插件只会在对应的平台参与最终发布,不再无差别地被打包到所有平台中。这样一来,项目体积更可控,跨平台构建也更加精确,开发者能够根据实际需求灵活管理插件的加载范围。

2.3

渲染优化

在文本系统中,我们进一步优化了文本渲染逻辑,解决了部分字体在绘制时出现的溢出与不居中现象。新的渲染计算方式能够让这类字体显示更准确,不过也需要注意,在少量使用了问题字体的项目中,文本位置与旧版本相比可能会有细微变化。

另外,我们还优化了 DrawCall 自动优化的性能。新的策略在维持渲染正确性的前提下,进一步提升运行性能。

在2D 网格渲染器组件中,我们将原先的 textureRangetextureRangeIsClip 属性替换为更符合通用渲染逻辑的 tilingOffset(平铺偏移)。这种方式能清晰地控制纹理在网格上的平铺和缩放效果,减少理解成本。

2.4

纹理资源优化

在纹理资源方面,我们对属性设置做了两项优化。首先,我们删除了纹理资源属性中让人误解的纹理淡化属性,改为较实用的最大MIP层数 maxMipLevels,用于控制纹理压缩模式下生成的MIP纹理最大数量,从而减少额外MIP层带来的存储与显存消耗。

其次,纹理资源设置为立方体(cube)类型后,开发者在应用时,我们新增检测图片宽高是否符合2的幂,当存在不符合要求的纹理在强行设置立方体类型时,会提示警告并阻断生成。从源头上杜绝了非标准资源导致的问题。

2.5

其它新增功能

通常情况下,LayaAir 引擎会根据 Spine 动画与 IDE 中的预乘 Alpha 设置,对 Spine 纹理进行自动预乘处理。然而,在某些情况下,素材本身已经做了预乘,但 Spine 与 IDE 中均未勾选预乘 Alpha,这时引擎可能会误判,导致边缘或半透明显示异常。

本次版本中,Spine 渲染器组件新增了 premultipliedAlpha 属性。当素材已做预乘但引擎无法自动识别时,开发者可手动指定是否启用预乘,从而保证渲染结果更加可控和一致。

此外,我们还优化了微信小游戏在 PC 平台上的 DPR 处理逻辑,有效提升了画面清晰度,改善了小游戏在桌面端的显示效果。

3、Native的重要更新

在本次版本中,Native引擎也有多项关键能力的更新内容。例如鸿蒙平台更新、iOS平台相关优化、新的启动页配置方案等。进一步增强跨平台的发布体验与产品表现。

3.1

鸿蒙平台的更新

HarmonyOS 6.0 是华为在 2025 年推出的新一代全场景操作系统。本次版本开始,LayaAir 引擎实现了对 HarmonyOS 6.0 的全面适配,也意味着引擎在鸿蒙生态的运行能力、接口对接与性能体验上进入了更成熟的阶段。对开发者而言,这次适配不仅扩展了应用可覆盖的鸿蒙设备范围,也让跨平台项目在鸿蒙系统上的体验更加一致。

在鸿蒙平台的能力补齐方面,Native 引擎新增了 VideoPlayer 与 VideoDecoder 的完整支持,使视频播放和解码与其他平台保持同等功能表现。文字渲染系统也加入了描边效果,在鸿蒙平台终于具备与 其它发布平台一致的文本视觉能力。这些改进让开发者在将LayaAir项目发布到 HarmonyOS 时,不再需要处理平台差异或进行额外兼容性适配,整体开发链路更稳定、更自然。

3.2

iOS平台的优化

针对 iOS 平台,本次版本在底层架构上做了两项重要升级。首先,引擎已经将应用的启动流程和 UI 管理,从传统的 AppDelegate 迁移至新的 SceneDelegate 体系。SceneDelegate 是 iOS 13 之后的官方推荐方式,它能更准确地管理应用的窗口与场景,尤其在 iPadOS 上支持多窗口特性时表现更为稳定。完成迁移后,引擎的启动逻辑与系统更加一致,生命周期回调也更精确,从而避免了过去常见的隐藏问题,例如应用切后台后渲染暂停不及时,或重新恢复时界面状态不完全同步等。

其次,iOS 的构建产物由原先的 .a 静态库全面升级为 xcframework。作为苹果近年主推的框架格式,xcframework 能更好地处理多平台与多架构的组合,允许真机与模拟器在同一套产物中共存,并天然兼容 Apple Silicon 环境。这意味着不再需要手动进行 lipo 合并,也不需要维护额外的多架构打包脚本。对于使用 CI 的开发团队而言,集成流程会变得更轻松、更稳定,同时整个工程的二进制结构也更现代、更符合苹果当前的官方规范。

3.3

Native与Web统一

在过去,网页端虽然已经提供了便捷的启动页配置流程,但 Native 端仍沿用独立的老式方式:需要手动创建一个 config.js,实例化 loadingView,再逐项填写相关参数。流程繁琐,且与 IDE 的设置脱节,也容易造成两端启动页不一致。

自本次版本起,Native 引擎正式接入 IDE 的启动页配置体系。开发者只需在 IDE 中完成一次配置,Native 版本打包时将自动采用与 Web 端一致的启动页,无需再额外编写脚本或维护两个体系。启动页的管理方式由此完全统一,配置成本更低,也能更可靠地保持跨平台体验的一致性。

同时,Native 引擎还新增了 canvas 相关接口支持,使其能够同步使用 Web 端引擎中的 uint8ArrayToArrayBufferuint8ArrayToArrayBufferAsync 能力,进一步缩小两端功能差异,让跨平台项目的行为表现更加一致。

写在最后

除了 3.3 分支一直保持"每月一更"的节奏,我们也根据开发者们的反馈,昨天对 3.2 分支 继续进行了优化和 BUG 修复,并发布了 3.2.9 版本,让这个分支的稳定性再上一个台阶。具体内容可前往官网(LayaAir.com)查看。

在前几天,我们还完成了 LayaAir1 与 LayaAir2 最新版本的 Native 引擎对 HarmonyOS 6.0 的适配,并分别发布了SDK版本。为使用历史版本引擎的开发者持续提供稳定且持续的技术环境。

LayaAir 引擎会一直保持高频、活跃的更新节奏,为开发者带来更加稳定、更易用、更强大的游戏开发体验。

END