三丶ANDROID与UNITY调用系列 (1丶ANDROID如何调用UNITY的对象、属性及方法)

    xiaoxiao2022-06-28  207

    1.Android 调用 Unity (单纯调) 从 Android 端并不能直接调用 Unity 脚本,而是通过消息发送或者接口回调的方式。(我暂时还没找到直接可以调用untiy脚本方法) 上面这张图要认真读一下 来自于简书–》无猫皆笼(讲解的Unity 与 Android 互调用)

    消息发送是一个非常简单的调用机制,建立在一个发消息的接口之上:

    // objectName: Unity 对象的名称 // methodName: Unity 对象绑定的脚本方法名 // message: 自定义消息(可以在后面一直添加) UnityPlayer.UnitySendMessage(String objectName, String methodName, String message);

    这是最原始的调用 ,这样是有些操作比较简单,也不太灵活

    2.接口调用方式 AndroidJavaProxy 其实也是 让我们回调数据给untiy更方便

    首先,在Java代码中定义接口,示例代码如下:

    1. package com.kailufang.manmodule.call; public interface OneInterface { void OnName(); }

    C#中脚本代码

    2. class SDKCallbackListener : AndroidJavaProxy { // 这句话很重要!!!C#找到Jar中接口的引用 public SDKCallbackListener() : base("com.kailufang.manmodule.call.OneInterface ") { } public void OnName(string msg) { DeLog.Log( "OnName:== " + msg); } }

    这需要在创建的c#脚本自己实现一些初始化中

    3. mCallbackListener = new SDKCallbackListener(); // 调用Jar中的方法,并把new的值传进去 设置回调 mSDKJavaObject.Call("initSDK", mCallbackListener);

    Java 代码,开始使用解开了

    4. private SDKCallbackListener mCallbackListener; public void initSDK(SDKCallbackListener listener) { mCallbackListener = listener; mCallbackListener.OnName("Weibo initSDK ok");//这样那边untiy会有一个消息收到 (2)步骤中那个回调就会收到消息 }

    最新回复(0)