当前位置: 首页 > article >正文

团结引擎 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


http://www.kler.cn/a/546850.html

相关文章:

  • STM32:迎接汽车与AI时代MCU新挑战
  • jenkins war Windows安装
  • ArcGISPro 新建shp+数据结构
  • 【Qt】Qt的对象树结构
  • Unity UI个人总结
  • untiy3D 让角色动起来,角色动画的使用
  • 【Java基础-44.8】Java中Map集合的遍历方式详解
  • Golang GORM系列:GORM事务及错误处理
  • 21爬虫:使用playwright接管本地已经登录淘宝的浏览器并查找python相关店铺信息
  • MaxKB本地部署celery_default is stopped
  • Node.js技术原理分析系列——Node.js调试能力分析
  • vue2 生命周期
  • Jupyter lab 无法导出格式 Save and Export Notebook As无法展开
  • spring6(完结)
  • [免费]Springboot+Vue医疗(医院)挂号管理系统【论文+源码+SQL脚本】
  • 顺序表SeqList(c语言)(动态顺序表)
  • Apollo 9.0 参考线生成器 -- ReferenceLineProvider
  • idea打开springboot项目打不开文件夹 一直loading
  • 无人机遥感图像拼接及处理教程
  • PHP 调用 SiliconFlow 语音生成 API 的脚本,用于将文本转换为 MP3 格式的语音文件