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

相关推荐
卡兰芙的微笑4 分钟前
get_property --Cmakelist之中
前端·数据库·编辑器
覆水难收呀7 分钟前
三、(JS)JS中常见的表单事件
开发语言·前端·javascript
猿来如此呀14 分钟前
运行npm install 时,卡在sill idealTree buildDeps没有反应
前端·npm·node.js
hw_happy20 分钟前
解决 npm ERR! node-sass 和 gyp ERR! node-gyp 报错问题
前端·npm·sass
FHKHH24 分钟前
计算机网络第二章:作业 1: Web 服务器
服务器·前端·计算机网络
视觉小鸟1 小时前
【JVM安装MinIO】
前端·jvm·chrome
二川bro1 小时前
【已解决】Uncaught RangeError: Maximum depth reached
前端
qq22951165023 小时前
python毕业设计基于django+vue医院社区医疗挂号预约综合管理系统7918h-pycharm-flask
前端·vue.js·express
八了个戒3 小时前
Koa (下一代web框架) 【Node.js进阶】
前端·node.js
Sca_杰3 小时前
vue2使用npm引入依赖(例如axios),报错Module parse failed: Unexpected token解决方案
前端·javascript·vue