赞
踩
注意:由于Unity版本问题,旧版Unity导出的包是包含src和lib文件夹,新版(自2019.3后)Unity导出的是包含launcher和unitylibrary文件夹,这里讲解新版导包过程。
Unity和androidstudio最好使用同一JDK,SDK,NDK
配置好Unity导包环境(JDK,SDK,NDK,Gradle)
修改包名,设置Api需求
设置libs,不然原生对接报错
下载地址,更新原因:https://www.pianshen.com/article/9770803436/
https://github.com/topameng/tolua/tree/master/Assets/Plugins/Android/libs
导包
导包结果
Gradle模板会描述和配置使用Gradle构建Android应用的方法。每个Gradle模板代表一个Gradle项目,Gradle项目可以包括和依赖其它Gradle项目。
将Unity作为库的Gradle模板文件如下:
baseProjectTemplate.gradle:包含所有其它模板和Gradle项目共享的配置,即Android Gradle插件上的代码库和依赖。
launcherTemplate.gradle:包含如何构建Android应用的指令,例如:打包,签名和APK分离等,具体取决于unityLibrary项目,它会输出一个APK文件或App Bundle。
mainTemplate.gradle:包含如何把Unity构建为库的指令,它会输出.aar格式文件,用户可以提供自定义模板来重写Unity模板,包括编辑器设置。
libTemplate.gradle:与之前的工作方式相同。
将Unity作为库会改变Unity Android应用清单文件的使用方式。此前会有一个AndroidManifest.xml文件,用于给Android应用提供图标、行为、权限和其它设置。
使用新系统后,我们有二个清单文件,而不是一个:
LauncherManifest.xml:负责处理图标、应用名称、开始行为及其目的、安装位置、支持的屏幕大小和设置“isGame”。
LibraryManifest.xml:负责声明Unity行为、权限、Unity行为使用的主题、VR模式、VR性能、使行为不可以调整大小、设置最大高宽比、应对配置改动、朝向、启动模式、Android UI硬件加速、使用的功能,例如游戏手柄或图形API和槽口支持。
该清单文件可以通过在Plugins/Android文件夹中提供自定义AndroidManifest.xml文件来重写。
AndroidStudio新建空项目
等待Bulid结束,出错自行解决
导入Unity包
等待bulid结束,出错自行解决
修改settings.gradle
include ':unityLibrary'
project(':unityLibrary').projectDir=new File('..\\Demo\\UTA_Demo\\unityLibrary')//里面写的是你unitylibrary的路径//里面写的是你unitylibrary的路径
4. 修改build.gradle(Module: app)
ndk{ abiFilters 'armeabi-v7a'}
- 1
implementation project(':unityLibrary')
implementation fileTree(dir: project(':unityLibrary').getProjectDir().toString() + ('\\libs'), include: ['*.jar'])//lib路径
5. 修改build.gradle(你的项目)
flatDir {
dirs "${project(':unityLibrary').projectDir}/libs"
}
6. 注销unitylibrary的manifest的入口
开启多进程,避免从Unity页面返回原生页面杀死App主进程
android:process=":readidcard"
7.修改strings.xml(app)
<string name="game_view_content_description">Game view</string>
8.Sync
结果,告一段落,这样就把Unity包导入AndroidStudio中了。
Button myButton2=(Button)findViewById(R.id.button);
myButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this,UnityPlayerActivity.class);
startActivity(intent);
}
});
网上文章一堆,自己查看。
1.Unity返回闪退
https://www.jianshu.com/p/a68168463b29
2.x64打包问题
https://www.pianshen.com/article/9770803436/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。