之前看了很多关于Unity与Android通信与交互的帖子,但是在做的过程当中遇到很多坑的地方,最终呢还是做出来了,所以就顺便记下,同时也希望能帮助到需要的小伙伴。

首先我们创建一个Android工程:

下面红框的地方注意一下,最好是一样的api版本:


然后就是next直到创建好一个工程。

Eclispe里面的一些步骤我就直接上图了,按照图片说明来做:

之后在eclispe选择src文件夹,然后右键Export--Java---JAR File然后一直next直到导出jar包。

导出jar包后我们新建一个unity工程,Unity工程里面目录注意事项我直接上图:

这是工程里面需要注意的,下面直接上代码:

一 调用安卓代码的单列

using UnityEngine;
using System.Collections;
///


/// 这是一个调用android方法的单列
///

public class AndroidCall : MonoBehaviour
{


    public static AndroidCall instance = null;
    public static AndroidCall Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new AndroidCall();
            }
            return instance;
        }
    }


    public string CallAndroid(string msg)
    {
        //com.unity3d.player.UnityPlayer   这个选择的地方我在上面的图片里面有注释在MainActivity里面
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        print("find result:tjg:CallAndroid:" + jc);
        //currentActivity 这个不要变
        AndroidJavaObject jo = jc.GetStatic("currentActivity");


        print("find result::" + jo);
        //AndroidCall这个为android里面方法的名字,带一个string类型的参数并且返回值是string类型
        string str = jo.Call("AndroidCall", msg);
        print("find result::tjg:CallAndroid1:" + str);
        return str;
    }
}

二 我们自己的逻辑函数类,我们将这个脚本挂在名字叫做myButton的物体上就可以了。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;


public class Test : MonoBehaviour
{
    void Start()
    {
        back();
    }


    private void back()
    {
        string str = AndroidCall.Instance.CallAndroid("shuaige");
        print("安卓返回的数据是:::" + str);
    }


    ///


    /// 名字是CallBack,并且带有一个string类型的参数(需要和java里面调用的一样)
    ///

    ///
    public void CallBack(string msg)
    {
        print("安卓发送过来的数据是:::" + msg);


    }
}

还有一点需要注意的地方我也直接上图:


然后就是打包到真机上测试了,希望小伙伴们能一次成功!有不明白的地方可以留言我们交流交流!

更多相关文章

  1. Back Stack学习之Android退出方法小结
  2. Zygote进程的创建过程(Android(安卓)8.1)
  3. 如何将Android(安卓)Studio的工程导入到eclipse中
  4. Unity 与 Android(安卓)互调用
  5. app与Android以及IOS的交互
  6. ReactNative学习笔记之调用原生模块(进阶)之Callback、Promise使用
  7. 让JNI告诉你 你的应用为什么被卸载
  8. 第四章 常见 Android(安卓)文件格式(一)(库文件、APK)
  9. Android:Service知识总结

随机推荐

  1. Android操作联系人
  2. Android的多媒体信息获取
  3. android中checkbox的padding引发的问题
  4. android RecyclerView基本使用(上)
  5. Android(安卓)settings.db数据库中添加一
  6. multipart/form-data图片上传实现方法
  7. Android之使用AchartEngineActivity引擎
  8. 网络连接之——xUtils 介绍(三)
  9. Android(安卓)编译错误 [kapt] An except
  10. Android之NDK