文章目录
前言
最近整理项目,看见代理通信中内容,决定整理出来
一、AndroidJavaProxy
AndroidJavaProxy 是 Unity 引擎提供的一个核心类,主要用于实现 Unity(C#)与 Android(Java)之间的双向通信。它充当了一个"桥接"或"代理"的角色,允许 Java 端的代码能够调用 C# 端实现的方法
二、使用步骤
1.unity
代码如下(示例):
c
public class IASCallUnity:AndroidJavaProxy
{
public IASCallUnity() : base("AS中IASCallUnity包名")
{ }
public void OnMethodString(string cmd, string info)
{
Debug.Log("Unity:" + cmd + "->" + info);
}
}
2.Android studio
IASCallUnity代码如下(示例):
c
package com.xx.xx.xxx
public interface IASCallUnity {
void OnMethodString(String cmd,String info);
}
ASCallUnityProxy代码如下(示例):
c
package com.xx.xx.xxx
public class ASCallUnityProxy
{
private static IASCallUnity asCallUnity;
public void SetUnityCallMeothr(IASCallUnity iasCallUnity)
{
Log.v(TAG,"IASCallUnity is Ok!!");
asCallUnity=iasCallUnity;
}
public static void OnMethodString(String cmd,String info)
{
if(info.length()>100)
{
Log.v(TAG,"MethodString "+cmd+":info.length:"+info.length());
}
else
Log.v(TAG,"MethodString "+cmd+info);
if(asCallUnity==null)
return;
asCallUnity.OnMethodString(cmd,info);
}
}
3.unity 调用
代码如下(示例):
csharp
void Initi()
{
if (Application.platform == RuntimePlatform.Android)
{
//接收AS信息
mAndroidJavaObject = new AndroidJavaObject("ASCallUnityProxy.js 包名");
mAndroidJavaObject.Call("SetUnityCallMeothr", new IASCallUnity());
}
4.逻辑
unity 脚本call AS 中ASCallUnityProxy.js ,SDK 中调用OnMethodString 发送数据,unity 中IASCallUnity.cs 接收数据