????????团结引擎创世版是Unity中国官方专为中国开发者定制的实时3D引擎,基于 Unity 2022LTS。其开发界面和Unity基本一致,只是在平台方面多了一些针对中国国内平台的设置,比如微信小游戏以及开源鸿蒙(OpenHarmony)。
????????这里我们就来体验一下,用团结引擎导出开源鸿蒙应用,看看它是否真的好用。
? ? ? ? 本项目旨在学习了解使用团结引擎导出OpenHarmony应用,了解使用团结引擎团出OpenHarmony应用的构建过程,帮助初学者快速的导出OpenHarmony应用。
? ? ? ? 团结引擎的安装可参考《团结引擎的安装》, 安装时记得勾选 OpenHarmony 模块。
????????操作系统:Windows
????????Unity 版本:团结引擎1.0.1
????????团结引擎的安装参考《团结引擎的安装》
? ? ? ? 因为我们主要是了解开源鸿蒙(OpenHarmony)应用的构建过程,因此我们使用已经可以运行的项目资源来作为案例,不涉及开发过程。
?????????团结引擎导入资源方式和Unity完全一样,对Unity导出的资源也完全兼容。先创建一个空的Tuanjie 工程。下载本文附带的资源,点击【Assets】->【Import Package】->【Custom Package...】,选择下载好的资源,点右下角【Import】,将资源导入到项目。
? ? ? ? 确保项目已经处于OpenHarmony平台下。切换方法,?在Build Settings界面,选中OpenHarmony平台选项,点击右下switch按钮,即可切换平台至OpenHarmony平台。?
????OpenHarmony应用的构建依赖于以下三个模块:
?????????在团结编辑器中,选择顶部菜单栏Edit ->?Preferences...,在打开的窗口左侧导航栏中,选择External Tools。外部工具面板的 OpenHarmony 部分包含SDK、Node.js和JDK的条目。
?????????要自定义任何这些依赖项的安装,请禁用依赖项各自的复选框,然后单击Browse并选择自定义依赖项的安装文件夹。
? ? ? ? 对于OpenHarmony配置,在安装OpenHarmony 模块的时候并没有像Android一样,将sdk、ndk等模块一起下载下来,这需要自己安装,并配置安装路径。
OpenHarmony SDK 下载:https://docs.openharmony.cn/pages/v3.2/zh-cn/release-notes/OpenHarmony-v3.2-release.md/#%E9%85%8D%E5%A5%97%E5%85%B3%E7%B3%BB
NodeJS 下载:https://nodejs.org/en/about/previous-releases
OpenJDK 下载:https://openjdk.org/
注意:
????????Unity支持OpenHarmony 3.2 (API level 9) 及以上版本。
小技巧:
????????单独去下载OpenHarmoney SDK比较麻烦,可以通过华为DevEco Studio IDE的SDK 管理工具来进行下载和版本管理。DevEco Studo 下载和安装可参考官网文档。
????????团结引擎在所有 OpenHarmony 构建中都使用 Hvigor。您可以在团结中构建输出包(.hap),也可以从团结中导出项目,然后使用外部工具(例如DevEco Studio)进行构建。
? ? ? ? 关于OpenHarmony应用的构建过程,官方文档是这样描述的:
构建 OpenHarmony 应用程序:
- 团结从您的团结项目中收集项目资源、代码库、插件、Hvigor模板和模块模板,并使用它们创建有效的Hvigor项目。
- Tuanjie 根据 Tuanjie 项目的 Player Settings 和 Build Settings 添加和更新 Hvigor 模板和模块文件中的值。
- 如果您选择导出项目而不是构建它,并使用 IL2CPP脚本后端,Tuanjie 会将 C# 脚本生成的 C++ 源文件放入 Hvigor 项目中。否则,如果您选择构建项目,团结会将
libil2cpp.so
库放入 Hvigor 项目中。- 团结对所有IPostGenerateOpenHarmonyProject接口调用OnPostGenerateOpenHarmonyProject。您可以在 Hvigor 构建应用程序之前使用此回调来修改或移动文件。
- Tuanjie 运行 Hvigor 以从 Hvigor 项目构建应用程序。Hvigor 将团结库模块、团结启动器模块和插件模块合并到一个OpenHarmony 应用模块文件中。
? ? ? ? 我们可以直接导出hap安装包。依次点击 【File】->【Build Settings...】,打开构建界面,设置Texture Compression 格式为ETC2。然后点击右下【Build】按钮,选择要保存 hap的位置,开始构建。
? ? ? ? ?构建完成后会生成后缀名为 hap的文件,这个文件就是鸿蒙原生应用。
? ? ? ? 答:OpenHarmony Build Support 中不包含OpenHarmony SDK以及Node.js SDK, JDK,需要自行安装。 当前版本对这些SDK的安装路径查找逻辑还有问题,请手动指定一下。后续版本会修复。
? ? ? ? 答:目前团结引擎不能和VisualStudio中的Unity Debugger插件配对使用, 团结引擎专用的 Debugger插件正在开发中,请关注后续版本。
? ? ? ? 答:NodeJs 的版本太高了,换个低一点的版本就可以了,至于闪退还没解决
? ? ? ? 答:OpenHarmony应该目前还不支持模拟器。?
? ? ? ? 团结引擎导出OpenHarmony应用和导出Android应用基本一致,只是在环境配置的时候需要我们自己动手配置环境,不然Android内置了环境,可能还不完善,以后应该会补齐。此外,在导出hap或者工程项目的时候会遇到或多或少的问题,可以根据实际情况解决,或者去Tuanjie引擎开发者社区提问或反馈。