Unity+AndroidStudio:学习:二:(第2次操作:成功)AndroidStudio如何产生.arr文件+交互

目录

1. 目的

1.1 想知道:AndroidStudio如何产生.arr文件

2.参考

2.2 Unity与Android交互方案优化版

3.操作:一:完成

3.1 版本

3.1 Demo下载地址

3.1 AS生成项目

3.1 创建和unity交互的Moudle项目

3.1 导出arr准备给unity使用

3.1 Unity中导入aar文件

3.1 Unity代码

3.1 unity设置

3.1 运行结果:成功


1. 目的

1.1 想知道:AndroidStudio如何产生.arr文件

2.参考

2.2 Unity与Android交互方案优化版

https://www.jianshu.com/p/86b275da600e

  1. Demo下载下来了,运行了是正常的。
  2. 更新后的版本 VS2019+unity2019.4.9f1
  1. good:亲测可以。
  2. good:AS的arr的包名等,对Unity里面没有影响
  3. good:不需要引用unity下的class.jar
  4. good:不用在Unity的/Plugins/Android下放置AndroidManifest.xml文件
  5. good:Unity打包时PackageName不依赖于引用文件
  6. good:发布简单,只需要导出arr并直接拷贝到/Plugins/Android目录下即可使用,不用对文件做任何修改
  7. but:作者的AS版本太老了:AndroidStudio 3.0的,但是现在下载的都是4.2.2的,导致很多界面不同,下面操作:一:就是我参考作者的进行制作了,亲测可以。

3.操作:一:完成

3.1 版本

  1. windows10  64
  2. AS 4.2.2 版本
  3. 小米6手机

3.1 Demo下载地址

https://download.csdn.net/download/qq_40544338/20031663

3.1 AS生成项目

  1. 这里随便填写项目名、包名即可,因为这个项目我们后面并不会用到。
  2. AsYourLike

3.1 创建和unity交互的Moudle项目

  1. Module name不用管它
  2. Package name认真填写,之后unity里会用到,不过它和unity导出的包名没有什么关系这里我们叫「com.jing.unity」好了
  3. 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 运行结果:成功

  1. APP的名字居然和AS里面的不用一致。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值