欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 团结引擎 OpenHarmony 平台全面支持 UAAL,实现引擎能力嵌入原生应用

团结引擎 OpenHarmony 平台全面支持 UAAL,实现引擎能力嵌入原生应用

2025/2/12 15:57:47 来源:https://blog.csdn.net/unityofficial/article/details/145573925  浏览:    关键词:团结引擎 OpenHarmony 平台全面支持 UAAL,实现引擎能力嵌入原生应用

团结引擎1.4版本已于近日正式发布!在这一版本中,OpenHarmony 平台迎来了一个具有里程碑意义的更新:全面支持 Used as a Library(UAAL)。UAAL 这一技术方案,具有将引擎嵌入原生应用的独特能力,其便捷性和高度可复用性特别适用于移动平台。该方案不仅展现了引擎的跨平台优势,也得到了开发者的广泛认可和热烈响应。

随着 OpenHarmony 平台开发者的逐步壮大,越来越多关于如何更灵活地在 OpenHarmony 原生应用中使用团结引擎的呼声逐渐出现,例如,关于“OpenHarmony 导出工程能否改造多 HAP 以 feature 方式运行”这一问题,得到了大家的关注和讨论。为此,我们将 UAAL 技术方案成功扩展至 OpenHarmony,进一步提升了 OpenHarmony 平台的可操作性与灵活性。

什么是UAAL?

Used as a Library(UAAL)是一项允许将引擎功能集成到现有的原生应用程序(如 Android、iOS、OpenHarmony 应用)中的技术。当将引擎作为一个库来使用时,就可以把引擎的一些核心功能,如渲染、物理模拟、资源管理等模块提取出来,嵌入到其他移动平台原生的项目架构中。

UAAL的主要特点有:

1. 嵌入运行:Tuanjie 作为一个模块运行,而不是完整的应用,利用 Tuanjie 的强大图形引擎、物理引擎、动画系统和插件生态。原生应用可以在需要时调用 Tuanjie 引擎。

2. 灵活的界面集成:Tuanjie 场景可以作为应用界面的一部分,与原生界面无缝切换。

3. 灵活的工作流:开发者可以继续使用 Tuanjie 编辑器创建和调试 3D 内容,并将其集成到原生应用中。

4. 跨团队协作:Tuanjie 开发团队可以专注于 Tuanjie 内容开发,原生开发团队处理整体应用架构。

如何在 OpenHarmony 原生应用中使用 UAAL?

下载安装团结引擎(1.4.0 及以上版本),打开项目后。通过顶部菜单栏:File >> Build Settings 打开 Build Settings 面板,在面板左侧将平台切换至 OpenHarmony。

在 OpenHarmony 平台的导出功能中,新增了一个“Export Project”勾选框,勾选后,会自动提供“Export Project Type” 供用户选择:

  • 选择:Default,为此前提供的默认导出 DevEco 工程方式。

  • 选择:Use As A Library(Recommended),即为 UAAL 模式导出。

导出工程可以直接使用 DevEco 打开并基于此进一步开发,也可以选择将导出工程中的 tuanjieLib 模块集成进已有的 OpenHarmony 项目工程中进行下一步开发。

注:为保证当前版本导出流程和原有默认流程的一致性,“Export Project Type” 选项为过渡方案,未来版本中,UAAL 将作为默认导出方式提供,原有导出方式即将下线!

OpenHarmony UAAL 导出和默认导出有什么区别?

勾选 Use As A Library(Recommended) 并导出后,无需额外操作,即为 OpenHarmony UAAL 模式。导出项目的工程结构目录相较之前自动变化:

  • 工程项目中,entry 模块只有简单入口

  • 新增 tuanjieLib 模块,引擎相关的代码资源均位于该模块

OpenHarmony UAAL 示例

UAAL 提供一键式打包服务,开发者在 Tuanjie Editor 中完成场景内相关开发并一键导出后,可直接在导出工程的基础上开发,也可以将导出工程中的 tuanjieLib 模块集成进已有的 OpenHarmony 项目工程中。UAAL 开发全流程可参考以下视频:

OpenHarmony UAAL 的实现原理

OpenHarmony 的 Hvigor 工程组织的形式是以模块(module)为单位进行管理的,一个功能内可以包含一个或多个模块,默认包含一个"entry"模块,构建后得到一个可安装 app(后缀是 .hap)。

在非 UAAL 模式下,团结项目是作为"entry"模块整体导出成一个 Hvigor 工程进行构建。为了让团结能够作为一个单独的库(Library)方便地嵌入到原生应用中,团结引擎将以一个"har"模块的形式嵌入到工程中。

TuanjiePlayer 以 har 包形式导出

  1. 团结引擎渲染的页面(Page)组件化: 页面组件化之后,极大地提高了开发者使用团结引擎渲染能力的自由度。理论上可以将团结引擎嵌入到原生 App 的任意位置。

  2. 调用机制:团结引擎作为以"har"模块(模块名为"tuanjieLib")嵌入到工程之后,其它模块如果要访问团结引擎内的接口和资源,需要通过"tuanjieLib"作为入口进行访问。

  3. 团结工程输出成一个 module:

  4. 首先需要修改团结工程的 hvigorfile.ts,将输出改成'har'包的形式(非 UAAL 模式下,默认是输出 'hap' 包)。

  5. 接着还需要对应修改模块配置文件,使其符合"har"模块的配置。

以上就是团结引擎 1.4 版本中 OpenHarmony 平台的更新。团结引擎将倾听国内开发者的声音,为大家带来更多大家想要的功能,并且始终保持引擎的高性能、高画质,以及稳定性。非常期待得到你的反馈,与我们一起共建中国版的实时 3D 引擎。

[1] 团结引擎官网:

https://unity.cn/tuanjie/tuanjieyinqing

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

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

[3] 团结引擎用户手册:

https://docs.unity.cn/cn/tuanjiemanual/Manual/UnityManual.html

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com