Unity 桥接 sdk 交互实现

Unity 桥接 sdk 交互实现

android 桥接SDK

流程可以参考这个链接,流程讲得很仔细,非常感谢大佬的笔记: blog.csdn.net/qq_37619255...

1.Unity 导出android 需注意的地方

  • 增加Unity的点击事件

    csharp 复制代码
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
     
    //对应事件
    public class BtnManageClick : MonoBehaviour
    {
        // Start is called before the first frame update
        void Start()
        {
            
        }
    
        // Update is called once per frame
        void Update()
        {
            
        }
    
    
        public void initBtnCLick()
        {
            Debug.Log("initBtnCLick");
            print("initBtnCLick static");
    
    
        }
    
        public void loginBtnCLick()
        {
            Debug.Log("loginBtnCLick");
            AndroidJavaObject helper = new AndroidJavaObject("com.jiama.sdk.HWgame");
            helper.CallStatic("autoLogin");
            print("loginBtnCLick");
        }
    
        public void payBtnClick()
        {
            Debug.Log("payBtnClick");
            print("payBtnClick");
        }
    }

    注意的地方是: 点击事件需要增加 Add Component事件,我使用 Main Camera 监听点击事件

  • android Studio 中增加android sdk处理事件
java 复制代码
package com.jiama.sdk;

import android.app.Activity;
import android.util.Log;

import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;

import org.json.JSONObject;

public class HWgame {

    private static Activity activity;

    public static void init(Activity act){
        activity = act;
    }

    public static void autoLogin() {
        Log.i("Unity", "autologin----------------");
        GameSDKApi.login(activity, new ApiCallback() {
            @Override
            public void successCallBack(JSONObject jsonObject) {
         
                String jsonStr = jsonObject.toString();
                Log.i("Unity", "autologin----------------" + jsonStr);
                UnityPlayer.UnitySendMessage("Main Camera","ReceiveMessageFromAndroid",jsonStr);
            }

            @Override
            public void failCallBack(Error error) {

                UnityPlayer.UnitySendMessage("Main Camera","ReceiveMessageFromAndroid",error.getMessage());
            }
        });
    }
}

上面的demo 样式需要需要 UnityPlayer.UnitySendMessage 能让unity 接收到信息,需要增加 UnityMessageReceiver script

源码如下:

C# 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UnityMessageReceiver : MonoBehaviour
{
    void ReceiveMessageFromAndroid(string message)
    {
        //接收adnroid 那边传递过来的信息
        Debug.Log("Received message from Android: " + message);
    }
}

增加这些代码接收adnroid 那边传递过来的信息。

相关推荐
怕浪猫6 小时前
FDE 如何正确解决现场项目工程性的问题
前端·后端·ai编程
西瓜太郎12346 小时前
外层模型卡片与分组详情成功率不一致,应该怎么排查?
前端·typescript·go·软件工程·react
GreenTea6 小时前
vLLM 与 SGLang KV Cache 底层实现机制深度调研报告
前端·后端·算法
几何心凉9 小时前
没有万能模型:我用 AiiOnly Token Plan,把多款大模型的长处拼进同一个项目
前端
kyriewen9 小时前
Claude Code 的额度今天缩水了17%——官方公告上写的是"永久提高25%"
前端·ai编程·claude
雪芽蓝域zzs10 小时前
vue解构平铺VS对象包裹
前端·javascript·vue.js
风骏时光牛马11 小时前
从零到实战,完整AI学习路线
前端
三十而立洋11 小时前
深入理解 Monorepo:子包安装依赖
前端·前端工程化
IT_陈寒11 小时前
Java Stream处理大集合,我的内存怎么就炸了
前端·人工智能·后端
Captaincc11 小时前
AI 用量桌面端-桌面宠物自定义指南
前端·人工智能