当前位置:   article > 正文

Unity导出包用于AndroidStudio交互使用使用_unity打包的apk可以在android studio上运行吗

unity打包的apk可以在android studio上运行吗

注意:由于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的路径

  • 1
  • 2
  • 3

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

ndk{ abiFilters 'armeabi-v7a'}
  • 1

在这里插入图片描述

implementation project(':unityLibrary')
implementation fileTree(dir: project(':unityLibrary').getProjectDir().toString() + ('\\libs'), include: ['*.jar'])//lib路径

  • 1
  • 2
  • 3

在这里插入图片描述
5. 修改build.gradle(你的项目)

flatDir {
    dirs "${project(':unityLibrary').projectDir}/libs"
}
  • 1
  • 2
  • 3

在这里插入图片描述
6. 注销unitylibrary的manifest的入口
在这里插入图片描述
开启多进程,避免从Unity页面返回原生页面杀死App主进程

android:process=":readidcard"
  • 1

在这里插入图片描述

7.修改strings.xml(app)

在这里插入图片描述

 <string name="game_view_content_description">Game view</string>
  • 1

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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 打包
    在这里插入图片描述
  2. 运行
    在这里插入图片描述
    在这里插入图片描述

五 安卓与Unity方法的互调

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

六 注意事项

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/98990
推荐阅读
相关标签
  

闽ICP备14008679号