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

相关推荐
LucianaiB9 小时前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
excel9 小时前
JavaScript 对象池:减少高频对象创建与 GC 压力
前端
陈随易11 小时前
纯 Go 写的 JS 引擎,跑分超过了 C 语言的 QuickJS
前端·后端·程序员
子兮曰12 小时前
Chrome 权限元素实战:144 与 151 的渐进增强写法
前端·javascript·chrome
IT_陈寒12 小时前
Redis连接池泄漏那次,我差点把生产环境搞崩了
前端·人工智能·后端
强尼银手13 小时前
我花一天做了个格斗游戏原型,判定全对,然后被「美术」劝退了
前端·javascript
石小石Orz13 小时前
AI 正在蚕食我们的编码能力
前端·后端·算法
陈随易13 小时前
专注飞机 FocusFlight,两个人把番茄钟做成了一趟航班
前端·后端·程序员
总要学点什么14 小时前
第98篇:三维特效-材质线效果——给一条线换十种材质,虚线的图案只填了一半
开发语言·前端·javascript·ecmascript·gis·webgl·材质
10share14 小时前
基于大模型的 i18n 方案:把中文原文当 Key,轻松搞定多语言维护
前端·vue.js