Unity导出包用于AndroidStudio交互使用使用

注意:由于Unity版本问题,旧版Unity导出的包是包含src和lib文件夹,新版(自2019.3后)Unity导出的是包含launcher和unitylibrary文件夹,这里讲解新版导包过程。

一 开发环境

Unity和androidstudio最好使用同一JDK,SDK,NDK

  1. Unity 2019.3.15f1
  2. AndroidStudio 3.5.2
  3. Unity导包安卓libs

二 Unity导出包

  1. 配置好Unity导包环境(JDK,SDK,NDK,Gradle)
    在这里插入图片描述

  2. 修改包名,设置Api需求
    在这里插入图片描述
    设置libs,不然原生对接报错
    下载地址,更新原因:https://www.pianshen.com/article/9770803436/
    https://github.com/topameng/tolua/tree/master/Assets/Plugins/Android/libs
    在这里插入图片描述

  3. 导包
    在这里插入图片描述

  4. 导包结果
    在这里插入图片描述
    在这里插入图片描述

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调用包

  1. AndroidStudio新建空项目
    在这里插入图片描述
    在这里插入图片描述
    等待Bulid结束,出错自行解决
    在这里插入图片描述

  2. 导入Unity包
    在这里插入图片描述
    等待bulid结束,出错自行解决
    在这里插入图片描述

  3. 修改settings.gradle
    在这里插入图片描述

include ':unityLibrary'
project(':unityLibrary').projectDir=new File('..\\Demo\\UTA_Demo\\unityLibrary')//里面写的是你unitylibrary的路径//里面写的是你unitylibrary的路径

在这里插入图片描述
4. 修改build.gradle(Module: app)

ndk{ abiFilters 'armeabi-v7a'}

在这里插入图片描述

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中了。
在这里插入图片描述

四 AndroidStudio打开Unity场景

  1. 添加button
    在这里插入图片描述
  2. MainActivity(app)添加按钮事件
    在这里插入图片描述
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. 打包
    在这里插入图片描述
  2. 运行
    在这里插入图片描述
    在这里插入图片描述

五 安卓与Unity方法的互调

网上文章一堆,自己查看。

六 注意事项

1.Unity返回闪退
https://www.jianshu.com/p/a68168463b29
2.x64打包问题
https://www.pianshen.com/article/9770803436/

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值