目录
1.1 想知道:AndroidStudio如何产生.arr文件
1. 目的
1.1 想知道:AndroidStudio如何产生.arr文件
2.参考
2.2 Unity与Android交互方案优化版
https://www.jianshu.com/p/86b275da600e
- Demo下载下来了,运行了是正常的。
- 更新后的版本 VS2019+unity2019.4.9f1
- good:亲测可以。
- good:AS的arr的包名等,对Unity里面没有影响
- good:不需要引用unity下的class.jar
- good:不用在Unity的/Plugins/Android下放置AndroidManifest.xml文件
- good:Unity打包时PackageName不依赖于引用文件
- good:发布简单,只需要导出arr并直接拷贝到/Plugins/Android目录下即可使用,不用对文件做任何修改
- but:作者的AS版本太老了:AndroidStudio 3.0的,但是现在下载的都是4.2.2的,导致很多界面不同,下面操作:一:就是我参考作者的进行制作了,亲测可以。
3.操作:一:完成
3.1 版本
- windows10 64
- AS 4.2.2 版本
- 小米6手机
3.1 Demo下载地址
https://download.csdn.net/download/qq_40544338/20031663
3.1 AS生成项目
- 这里随便填写项目名、包名即可,因为这个项目我们后面并不会用到。
- AsYourLike
3.1 创建和unity交互的Moudle项目
- Module name不用管它
- Package name认真填写,之后unity里会用到,不过它和unity导出的包名没有什么关系这里我们叫「com.jing.unity」好了
- Minimum SDK能选多低选多低,反正不超过unity发布的版本就行
然后我们在com.xzy.mylibrary包下创建一个类,作为Unity和Android通信的核心类,名字尽量炫酷一点,这里我们叫「Unity2Android」
这里我们通过Java的反射原理来获取本来导入class.jar类才能引用到的com.unity3d.player.UnityPlayer包下的currentActivity上下文。同理给unity发消息也是反射原理。「getActivity」和「callUnity」这两个方法,有一定的开发经验应该很容易理解。
这里我们实现一个简单的接口「showToast」。
3.1 导出arr准备给unity使用
3.1 Unity中导入aar文件
将aar文件复制到此位置
3.1 Unity代码
using UnityEngine;
using UnityEngine.UI;
public class Main : MonoBehaviour
{
/// <summary>
/// 场景上的文本框用来显示android发送过来的内容
/// </summary>
public Text text;
/// <summary>
/// android原生代码对象
/// </summary>
AndroidJavaObject _ajc;
void Start()
{
//通过该API来实例化导入的arr中对应的类
_ajc = new AndroidJavaObject("com.jing.unity.Unity2Android");
}
void Update()
{
}
/// <summary>
/// 场景上按点击时触发该方法
/// </summary>
public void OnBtnClick()
{
//通过API来调用原生代码的方法
bool success = _ajc.Call<bool>("showToast", "this is unity");
if (true == success)
{
//请求成功
}
}
/// <summary>
/// 原生层通过该方法传回信息
/// </summary>
/// <param name="content"></param>
public void FromAndroid(string content)
{
text.text = content;
}
}
3.1 unity设置
Main代码给Main Camera相机
3.1 运行结果:成功
- APP的名字居然和AS里面的不用一致。