内容提要
本文介绍将Unity项目迁移至OpenHarmony(鸿蒙)架构的步骤。首先需安装团结引擎和DevEco Studio,配置环境。项目需切换平台,处理报错,添加UNITY_OPENHARMONY宏。工程结构类似Android Studio,但IL2CPP构建自动完成。配置包名、应用名和图标时,需修改entry模块下的文件,推荐使用自适应图标。
延伸解读
环境准备要点
迁移前需安装团结引擎并勾选OpenHarmony Build Support,同时安装DevEco Studio。打开导出工程时,建议勾选自动同步SDK版本,以避免版本不一致问题。若项目使用URP,需删除原插件并重新下载团结引擎专用版本,否则可能报错。模拟器测试需勾选x86_64平台。
代码适配与宏处理
旧项目常包含Android或iOS宏,鸿蒙需添加UNITY_OPENHARMONY宏。建议在代码中按平台条件编译,例如#if UNITY_OPENHARMONY处理特有逻辑,避免Android逻辑误入鸿蒙。同时,第三方SDK调用需在导出前完成适配,否则启动时可能出错。
工程结构对比与构建差异
OpenHarmony工程结构与Android Studio类似,但文件对应关系需注意,如module.json5对应AndroidManifest.xml,resources/base对应res。构建IL2CPP时,团结引擎导出后自动完成IL2CPP构建,代码存于Il2CppBackup目录,DevEco Studio仅需打包。注意不同项目导出路径需分离,避免冲突。
应用配置注意事项
AppScope/app.json5中配置包名、应用名和图标时,仅包名生效。应用名和图标需在entry模块下修改,应用名需改三个string.json文件,图标推荐使用自适应图标(layeredIcon)。启动窗口图标(start_icon.png)修改有效,但应用图标修改需在entry模块进行。
Q&A
将Unity项目迁移到鸿蒙需要安装哪些工具?
需要安装团结引擎(通过团结 Hub,并勾选 OpenHarmony Build Support)和 DevEco Studio(鸿蒙原生IDE)。
Unity项目迁移到鸿蒙时,如何处理平台相关的代码宏?
需要添加专门的宏 UNITY_OPENHARMONY,用于区分鸿蒙平台与其他平台(如 Android)的逻辑。例如:`#if UNITY_OPENHARMONY` 处理鸿蒙特有逻辑,`#elif UNITY_ANDROID` 处理安卓逻辑。
OpenHarmony工程结构与Android Studio工程结构有哪些相似之处?
两者结构相似,例如:module.json5 对应 AndroidManifest.xml,oh-package.json5 对应 build.gradle,resources/base 对应 res,ets 对应 java/kotlin,libs 对应 libs/jniLibs 等。
团结引擎导出OpenHarmony工程时,IL2CPP构建是如何进行的?
IL2CPP构建是自动完成的。导出时,代码存储在导出目录同级的 Il2CppBackup 目录,由 DevEco Studio 自动进行 IL2CPP 构建,之后只需打包即可。
在OpenHarmony工程中,修改应用名和图标应该修改哪些文件?
应用名需要修改 entry/src/main/resources/base/element/string.json、zh_CN/element/string.json 和 en_US/element/string.json 中的 EntryAbility_label 字段。图标推荐修改为自适应图标,在 entry/src/main/resources/base/media 目录下配置 layeredIcon,前景和背景图片分别为 ic_launcher_foreground.png 和 ic_launcher_background.png。
AppScope/app.json5 中配置应用名和图标是否有效?
无效。AppScope/app.json5 中只有包名生效,应用名和图标需要到 entry 模块下修改。