Unity与Android通信基础篇

环境

1.首先我们需要安装JDK,并配置环境
2.Unity中选好SDK和NDK指定路径
3.Unity工程切换为Android工程
4.打包发布的包名,工程名指定好

基础

1.拿到我们的UnityPlayer类
Unity工程打包到安卓会在libs文件夹下生成unity-classes.jar包
在这里插入图片描述
我们需要拿到这个类库下的UnityPlayer类(路径在com.unity
3d.player下)
在这里插入图片描述
在这里插入图片描述
在这个类里面有个静态变量currentActivity
在这里插入图片描述
这个currentActivity就是我们的UnityPlayerActivity,这里我们需要获取到它才能进行通信

Unity Call Android

  private AndroidJavaClass javaClass = null;  //用于缓存unityplayer
  private AndroidJavaObject javaObject =null; //用于缓存unityactivity
  public Text messageText;   //用于显示ardroid传回的消息
  public Button btn;  //监听事件并通知android

 void Start()
    {
       //这两句代码前面已经解释的很清楚了
        javaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //获取unityplayer
        javaObject= javaClass.GetStatic<AndroidJavaObject>("currentActivity"); //获取unityplayer下的静态变量
        btn.onClick.AddListener(Call); //监听
    }
   void Call()
    {
        javaObject.Call("Test"); //通知UnityActivity里面的Test方法
    }
    //Android 通知 Unity
     public void CallBack(string str)
    {
        messageText.text = str;
    }

Unity工程写完了,我们保存场景,并打包,注意这里不是打包成apk
勾选Export Project,这样打包出来的是安卓工程,而不是apk包
然后我们使用Android studio打开这个工程进行二次开发
在这里插入图片描述

Android Call Unity

这里也很简单
在这里插入图片描述
首先我们找到UnityPlayerActivity
在这里插入图片描述
在这里面添加之前在Unity端Call的Test方法就可以了
然后使用UnityPlayer里面的静态方法UnitySendMessage方法发送消息给Unity
这里有3三个参数要填
1.游戏物体的名字(Unity里面挂脚本的物体名,而不是脚本名)
2.方法名
3.参数
至此,Unity与Android的简单通信完成

总结

当我们在Unity端修改了代码后,我们只需要把assets文件夹和jniLibs文件夹复制到之前的Android工程即可在这里插入图片描述
后面我会讲解接简单的SDK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值