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 那边传递过来的信息。

相关推荐
用户90443816324609 小时前
90%前端都踩过的JS内存黑洞:从《你不知道的JavaScript》解锁底层逻辑与避坑指南
前端·javascript·面试
CodeCraft Studio9 小时前
文档开发组件Aspose 25.12全新发布:多模块更新,继续强化文档、图像与演示处理能力
前端·.net·ppt·aspose·文档转换·word文档开发·文档开发api
PPPPickup10 小时前
easychat项目复盘---获取联系人列表,联系人详细,删除拉黑联系人
java·前端·javascript
老前端的功夫10 小时前
前端高可靠架构:医疗级Web应用的实时通信设计与实践
前端·javascript·vue.js·ubuntu·架构·前端框架
前端大卫10 小时前
【重磅福利】学生认证可免费领取 Gemini 3 Pro 一年
前端·人工智能
孜燃10 小时前
Flutter APP跳转Flutter APP 携带参数
前端·flutter
脾气有点小暴11 小时前
前端页面跳转的核心区别与实战指南
开发语言·前端·javascript
lxh011311 小时前
最长递增子序列
前端·数据结构·算法
Youyzq11 小时前
前端项目发布到cdn上css被编译失效问题rgba失效和rgb失效
前端·css·算法·cdn
Fantastic_sj12 小时前
Vue3相比Vue2的改进之处
前端·javascript·vue.js