Android集成Unity(二)

2024-03-31 1305阅读

前言

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

演示效果

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

开发环境

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

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

一. 创建Unity项目并打包

1. 创建Unity项目

Android集成Unity(二)

2. Unity构建项目配置

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

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

Android集成Unity(二)

3. Android环境相关配置

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

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

Android集成Unity(二)

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

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

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

Android集成Unity(二)

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

Android集成Unity(二)

4. 导出Unity项目文件

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

Android集成Unity(二)

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

Android集成Unity(二)

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

二. 将Unity集成到Android中开发

1. Android Studio打开Unity项目

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

Android集成Unity(二)

接下来便弹出弹窗

Android集成Unity(二)

然后再弹出一个弹窗

Android集成Unity(二)

2. Android Studio调整环境配置

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

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

Android集成Unity(二)

3. 调整Unity项目配置

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

Android集成Unity(二)

4. Unity项目编译成aar

Android集成Unity(二)

接下来如下图操作:

Android集成Unity(二)

5. Android集成Unity

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

Android集成Unity(二)

修改AndroidManifest,如下图所示:

Android集成Unity(二)

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

Android集成Unity(二)

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

Android集成Unity(二)

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

注意事项

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

android:process=":unity"

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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]