U3DC.COM | 优三帝研究院

Menu

将Unity作为库集成到原⽣应⽤中:Android篇

本⽂档说明了如何通过Activity将Unity作为库纳⼊标准Android应⽤程
序。您可以阅读有关Unity作为库的了解更多信息。


开发环境要求:
• Android Studio 3.4.2以上
• Unity版本2019.3.0+
1.项⽬资源准备

images
◦ Unityproject-使⽤Unity开发的项⽬。在Plugins/Android⽬
录下放⼊.java⽂件,⽅便Unity于android进⾏通讯;
◦ NativeAndroidApp-这是Android Studio开发的原⽣应⽤程
序,我们将在其中集成Unity项⽬。


2.将Unity项⽬导出Android Gradle项⽬
• 在Unity编辑器中打开UnityProject
• 转到“构建设置”窗⼝(菜单/File/BuildSettings)
◦ 选择并切换到Android平台
◦ 选择选项“导出项⽬”

images
◦ 将UnityProject导出到androidBuild⽂件夹,⽂件夹结构应
如下所示:

images


3.将Unity库模块添加到NativeAndroidApp中
执⾏以下操作,以将导出的androidBuild / unityLibrary模块添加到
Android Studio中的NativeAndroidApp Gradle项⽬中:
• 在Android Studio中打开NativeAndroidApp
• 打开settings.gradle⽂件
◦ 在⽂件末尾添加⼀个指向unityLibrary模块的项⽬⽬录:
• include ':unityLibrary'
• project(':unityLibrary').projectDir=new File('..\
\UnityProject\\androidBuild\\unityLibrary')

images
• 打开build.gradle(Module:app)⽂件
◦ 在依赖性{块中添加以下内容
• implementation project(':unityLibrary')
• implementation fileTree(dir:
project(':unityLibrary').getProjectDir().toString() + ('\
\libs'), include: ['*.jar'])
images
• 打开build.gradle(Project:NativeAndroidApp)⽂件
◦ 在所有项⽬{repositories {块中添加以下内容
• flatDir {
• dirs "${project(':unityLibrary').projectDir}/libs"
• }
images
• 由于Gradle⽂件已被修改,因此单击⽴即同步以进⾏项⽬同

images
• 如果⼀切顺利,您应该会在Android视图中看到unityLibrary模
块 。注意,如果你的环境配置不满⾜条件,build时会去请求下
载对应的模块,此过程可能需要链接梯⼦。完成后效果如下

images


项⽬准备就绪
⼀切准备就绪,可以构建,运⾏和调试: 如果⼀切成功,那么此时
您应该能够运⾏NativeAndroidApp:

images
images


备注
• Unity在另⼀个进程android:process =“:Unity”(应⽤模块中
的AndroidManifest.xml)中运⾏
原⽣界⾯
Unity已加载并在单独的
Activity中运⾏。中间的浅灰
⾊按钮是从
NativeAndroidApp中实现的
MainUnityActivity添加的
• 安装后,设备上将出现两个图标。如果想仅保留主要 activity的
图标,请从unityLibrary中的AndroidManifest.xml中删除unity的
activity。
• (可选)我们发现⼀些Android 7. *设备将活动的frontOfTask设
置为错误状态,从⽽导致在完成/退出Unity活动时整个任务进⼊
后台,⽽不是返回Main activity。保持预期⾏为的解决⽅法:在
NativeAndroidApp下的MainUnityActivity.java中,添加如下代
码:
• @Override public void onUnityPlayerQuitted()
{ showMainActivity(""); finish(); }

转载注明出处:

2020.4 @U3DC.COM by Mark

在“关于我”页面添加公众号,回复unity库获取源码。


博主公众号:优三帝

打赏
— 于 共写了1764个字
— 文内使用到的标签:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据