最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

全球快看点丨Android工程接入UnityLibrary工程

来源:博客园

目录结构

Unity工程指UnityLibrary目录下文件;


(相关资料图)

安卓工程指app目录下文件;

整体指App目录下不包括app和UnityLibrary;

1.Unity打包时勾选导出安卓工程;

拷贝gradle.properties中:unityStreamingAssets=xxx 到整体工程的gradle.properties中

拷贝local.properites中ndk、jdk路径到整体工程的local.properites

2.AndroidStudio创建Empty Activity工程;

整体工程的setting.gradle中添加:

include ":unityLibrary"project(":unityLibrary").projectDir=new File(".\\unityLibrary")

安卓工程app目录下build.gradle中添加:

dependencies{implementation project(":unityLibrary")implementation fileTree(dir:project(":unityLibrary").getProjectDir().toString() + ("\\libs"), include: ["*.jar"])}

3.修改安卓工程和Unity工程Build.Gradle

targetsdk,minsdk,compilesdk,buildToolsVersion都要一致

也可在File/ProjectStructure/Modules中切换Version

4.在安卓工程MainActivity中添加切换Activity代码

在OnCreate中添加:

Intent intent = new Intent(MainActivity.this, UnityPlayerActivity.class);startActivity(intent);

这样一开始就会打开Unity界面,也可以在原生工程添加按钮跳转;

报错记录

1.Gradle Version和 Gradle Plugin Version出错

Gradle Plugin Version中包含了多个Gradle Version;根据提示选择对应版本的GradleVersion;如果没有对应版本,就下载新的Gradle Plugin Version;

File/ProjectStructure/Project中切换;

2.sdk、ndk、jdk版本出错

建议使用Unity本体目录下的sdk和jdk,同样ProjectStructure界面选择;

之前local.properites也配置过;

3.跳转Unity工程闪退

安卓工程的main/res/values/string.xml中添加

Game view

4.编译过程中找不到libillcpp.so,libmain.so等问题

重新拷贝Unity导出工程的jiniLibs文件夹到UnityLibrary对应目录工,删除buid,重新打包;

5.打包编译il2cpp报错

如果做了代码热更有可能是没有正确生成依赖,找不到对应类型;

我使用HybridCLR热更,可以重新生成依赖,再次导出安卓工程;

6.两个app图标

注释UnityLibray目录中AndroidManifest.xml一下配置;

关键词: