!在這一版本中,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:
- 首先需要修改團結工程的 hvigorfile.ts,將輸出改成'har'包的形式(非 UAAL 模式下,默認是輸出 'hap' 包)。
- 接著還需要對應修改模塊配置文件,使其符合"har"模塊的配置。
以上就是此次團結引擎 1.4.0 版本中 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
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“點贊”、“在看”,都是我們前進的動力
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.