Android集成Unity(二)

前言

上一篇给大家分享了Android集成Unity,但那一篇解决的是Unity采用mono打包,但Unity到了2020及以上版本时,官方都是推荐il2cpp打包,所以这一篇就补上之前那一篇的短板

演示效果

Android与Unity页面反复切换,无闪退

开发环境

Android端: Android Studio(各大版本都可以,区别不大)

Unity端: Unity3D(各大版本都可以,区别不大)

一. 创建Unity项目并打包

1. 创建Unity项目

2. Unity构建项目配置

创建Unity项目后,先不对Unity场景做任何操作,调整打包平台除外

点击左上角 File ------> 点击Build Settings ------> 点击Add Open Scenes ------> 点击Android ------>勾选Export Project ------> 点击Switch Platform

3. Android环境相关配置

打包Android相关的东西都是要配置好Java环境,配置好AndroidSDK,再使用Gradle工具进行构建,Unity也不例外

3.1 点击Unity左上角Edit------>Preferences,弹出如下图

如果你下载Unity没有问题的话,JDK,Android SDK,Android NDK,Gradle这些路径按照默认的设置

小编建议大家下载Unity时SDK尽量和Android Studio的SDK版本一致,这样可以减少很多不必要的版本差异问题

3.2.1 点击Unity左上角Edit------>点击Project Settings,弹出窗口如下:

3.2.2 点击Player------>点击Other Settings,操作如下图:

4. 导出Unity项目文件

点击左上角File------> Build Settings------> Export

打包进度条结束后,弹出如下文件夹

如果打包出来的Android项目和上图不一致,那可能是打包平台不同或者Unity的版本差异较大,到此为止,Unity打包出来的Android项目就完成了,接下来小编带大家将Unity项目嵌入到Android Studio中

二. 将Unity集成到Android中开发

1. Android Studio打开Unity项目

用Android Studio打开刚刚导出的Unity项目,操作如下:

接下来便弹出弹窗

然后再弹出一个弹窗

2. Android Studio调整环境配置

对了,突然想起,文件名尽量不取中文,所以我改了个名字TextDemo(Unity打包项目 改为 TextDemo)

如下图所示,可以看到Android Studio打开刚刚的Unity项目后出现了报错,没事,这是因为Unity与Android Studio配置的差异,我们只需增加一行设置即可

3. 调整Unity项目配置

在Android API 31以上,Manifest中需要显示声明Launcher Activity的Android:exported属性

4. Unity项目编译成aar

接下来如下图操作:

5. Android集成Unity

新建一个Android项目,项目名随意,不影响,将上一个编译出来的aar放入到此项目的lib中,如图所示:

修改AndroidManifest,如下图所示:

添加字符串配置,如图所示:

在build.setting修改一下引用,如下图所示:

到此为止,Android集成Unity就结束了,然后就可以跑在真机上运行了,记住一定要跑真机哦,因为刚刚我们在Unity打包时没有勾选模拟器

注意事项

Unity 页面必须使用单独进程,否则在退出时,程序会崩溃,因为Unity退出时会杀死Android进程

java 复制代码
android:process=":unity"

要是有疑问大家可以加我微信详聊 yf1553653788,下一篇再给大家分享 Flutter与Unity之间的通信;

相关推荐
2501_916008892 小时前
全面介绍Fiddler、Wireshark、HttpWatch、SmartSniff和firebug抓包工具功能与使用
android·ios·小程序·https·uni-app·iphone·webview
玉梅小洋3 小时前
Windows 10 Android 构建配置指南
android·windows
Libraeking5 小时前
视觉篇:Canvas 自定义绘图与高级动画的华丽圆舞曲
android·经验分享·android jetpack
Fushize5 小时前
多模块架构下的依赖治理:如何避免 Gradle 依赖地狱
android·架构·kotlin
Jomurphys6 小时前
Kotlin - 类型别名 typealias
android·kotlin
Haha_bj6 小时前
Flutter ——flutter_screenutil 屏幕适配
android·ios
Haha_bj6 小时前
Flutter ——device_info_plus详解
android·flutter·ios
前端小伙计7 小时前
Android/Flutter 项目统一构建配置最佳实践
android·flutter
Mr_sun.8 小时前
Day09——入退管理-入住-2
android·java·开发语言
ujainu9 小时前
告别杂乱!Flutter + OpenHarmony 鸿蒙记事本的标签与分类管理(三)
android·flutter·openharmony