Unity与AS通信

文章目录


前言

最近整理项目,看见代理通信中内容,决定整理出来


一、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 接收数据

总结

相关推荐
17岁的勇气5 小时前
Unity Shader unity文档学习笔记(二十二):shader变体
笔记·学习·unity
寂寞的船1 天前
【Unity知识速递】第10期 Unity GC 零分配实战:从 UnityEngine.Pool 到手动 GC 控制的全链路优化
jvm·unity·c#·游戏引擎·lucene
Martina_03212 天前
AI生成3D场景的霓虹灯一开就糊成光团?用6步检查Emissive、Bloom与曝光
人工智能·3d·ai·自然语言处理·游戏引擎·材质·贴图
寂寞的船3 天前
【Unity知识速递】第8期 IL2CPP 托管堆内存碎片与原生堆交互机制深度解析
unity·游戏引擎·交互
寂寞的船4 天前
【Unity知识速递】第5期 Unity 6.2 深度解析:AI Assistant 登场,World Space UI 与 Sentis 全面升级
人工智能·ui·unity
寂寞的船4 天前
【Unity知识速递】第4期 MCP for Unity:用 AI 自然语言控制编辑器
人工智能·unity·编辑器
淡海水4 天前
09-04-内存-Unity原生对象生命周期
unity·c#·游戏引擎·gc
寂寞的船4 天前
【Unity知识速递】第6期 URP性能优化完全指南:从内存到GPU的三维调优
unity·性能优化·编辑器
寂寞的船4 天前
【Unity Bug挑战】第10期 SerializeReference 内存泄漏之谜
unity·c#·游戏引擎·bug
tealcwu6 天前
【Unity基础】为什么游戏需要物理按键映射?从 Unity Input Manager 到跨引擎输入设计
java·游戏·unity