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

相关推荐
2501_9445215931 分钟前
Flutter for OpenHarmony 微动漫App实战:推荐动漫实现
android·开发语言·前端·javascript·flutter·ecmascript
Amumu121381 小时前
Vue核心(三)
前端·javascript·vue.js
CoCo的编程之路1 小时前
2026 前端效能革命:如何利用智能助手实现“光速”页面构建?深度横评
前端·人工智能·ai编程·comate·智能编程助手·文心快码baiducomate
RFCEO2 小时前
HTML编程 课程五、:HTML5 新增语义化标签
前端·html·html5·跨平台·语义化标签·可生成安卓/ios·html最新版本
2501_944521592 小时前
Flutter for OpenHarmony 微动漫App实战:图片加载实现
android·开发语言·前端·javascript·flutter·php
雨中深巷的油纸伞2 小时前
vue 项目部署到iis后 浏览器刷新404
前端·javascript·vue.js
谢尔登3 小时前
从源码视角来看Pinia!
前端·javascript·vue.js
运筹vivo@3 小时前
攻防世界: mfw
前端·web安全·php
沛沛老爹3 小时前
从Web到AI:行业专属Agent Skills生态系统技术演进实战
java·开发语言·前端·vue.js·人工智能·rag·企业转型