【Unity和Android通信】jar包 arr包 java扩展

Unity和安卓交互的几种形式

请添加图片描述
1.导出Jar包 + 扩展MainActivity + Java主导
复杂度 4.5★ 通用度 4.5★ 注:官方已经不再推荐这种方法。
2.导出aar包 + 扩展MainActivity + Java主导
复杂度 4★ 通用度 4.5★ 注:官方推荐
3.互调模式之提供Java扩展类
提供额外的类 + Java主导 复杂度 3★ 通用度 3.5★
4.互调模式之C#主导式调用
Unity中设置了安卓SDK路径后,可以直接调用安卓SDK中的原生方法,不用从AS中导出插件再导入Unity中。但C#中用反射的写法不能使用Java的一些高级语法。

环境配置

1.unity2017
2.Android Studio 2021.1.1
Android Studio 安装
转载:
https://blog.csdn.net/qq_33581509/article/details/116424441
3.Java SDK 1.8
javaSDK环境配置
安装JDK与JRE,目录随意,不是同一个且记住就行。

安装完成后,此电脑(Win7叫计算机),右键,属性,高级系统选项,环境变量
系统变量,新建,JAVA_HOME变量
变量值选择或填写JDK的安装目录
系统变量,找到Path变量(已经存在的),编辑
在变量值最后输入JDK安装目录下的bin目录(可以直接输入也可以写成%JAVA_HOME%\bin)与JRE安装目录下的bin目录
注意:原Path变量最后若已经有分号则不用加,否则先加一个分号再输入
系统变量,新建,CLASSPATH变量
变量值填写(可直接复制下一行内容)
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
运行cmd 输入 java -version与javac -version
java或javac和 -version 之间有空格
若显示版本信息 则说明安装和配置成功
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

导出Jar包 + 扩展MainActivity + Java主导

1、打开Android Studio新建一个项目,新建一个模块(Module),取名UnityAndroidLibrary。注意选择最小SDK16,因为Unity最小支持的是16。
2、在该模块(ProjectName/UnityAndroidLibrary/src/main/java/packageName/)下新建一个Empty Activity。创建时勾上Launcher Activity。
3、删除跟该界面一同生成的activity_main.xml布局文件(因为之后布局归Unity管理),同时删除该模块MainActivity中onCreate()里调用setContentView()方法。
4、进入Unity的安装目录(如D:\Unity 5.4.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes下)复制classes.jar文件,粘贴到该模块UnityAndroidLibrary/libs目录下。右键该jar选择Add as Library,选Add to Module UnityAndroidLibrary。
5、打开UnityAndroidLibrary模块的AndroidManifest.xml清单文件,该文件会覆盖掉Unity的一些设置,修改如下。(从默认的app模块中的清单文件拷贝过来,把报错的地方去掉即可。记得加后面的meta-data节点)
在这里插入图片描述
6、回到模块的MainActivity,修改该类继承自UnityPlayerActivity。在该类中添加自定义的方法,用于给Unity调用。如:

public int add(int a, int b){
    return a + b;
}

7、在AS中Project目录选中unityandroidlibrary,在Build菜单下选Make Module ‘unityandroidlibrary’单独编译这个模块。
8、在unityandroidlibrary/build/intermediates/bundles/debug目录右键Show in Explorer。删除debug/libs/classes.jar(等同于刚从Unity那边拷过来的内容),把debug/classes.jar拖到debug/libs中(这个是包含了刚新增的扩展方法的)。把libs和res这两个文件夹备份(如复制到桌面)。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值