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之间的通信;

相关推荐
alexhilton4 小时前
Compose中初始加载逻辑究竟应该放在哪里?
android·kotlin·android jetpack
zh_xuan4 小时前
启动RN服务端口被占用
android·react native
Code-keys7 小时前
Android Codec2 Filter 算法模块开发指南
android·算法·音视频·视频编解码
y = xⁿ8 小时前
MySQL:count(1)与count(*)有什么区别,深分页问题
android·数据库·mysql
程序员陆业聪9 小时前
Android启动全景图:一次冷启动背后到底发生了什么
android
安卓程序员_谢伟光11 小时前
m3颜色定义
android·compose
麻辣璐璐12 小时前
EditText属性运用之适配RTL语言和LTR语言的输入习惯
android·xml·java·开发语言·安卓
北京自在科技13 小时前
谷歌 Find Hub 网页端全面升级:电脑可直接管理追踪器与耳机
android·ios·安卓·findmy
Rush-Rabbit13 小时前
魅族21Pro刷ColorOS16.0操作步骤
android
爪洼传承人13 小时前
AI工具MCP的配置,慢sql优化
android·数据库·sql