三丶ANDROID与UNITY调用系列 (1丶ANDROID如何调用UNITY的对象、属性及方法)
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)步骤中那个回调就会收到消息
}