通过 AndroidJavaProxy , interface 回调的方式
在andorid端新建一个interface 类
package com.test.callback;
public interface UnityCallBack {void TestCallBack(String ret); }package com.test.callback; //新建一个普通的java class public class TestMoudle { private UnityCallBack mUnityCallBack;public TestMoudle(UnityCallBack callBack){mUnityCallBack = callBack;}public void TestInit(Activity activity, String code){ Log.d("TAG", "TestInit = "+ code);mUnityCallBack.TestCallBack("androidreturn");}}
//unity c#端
public class TestAndroidCallBack : MonoBehaviour
{
public class AndroidCallBack : AndroidJavaProxy
{
public AndroidCallBack () : base("com.test.callback.UnityCallBack") { }
void TestCallBack(String ret){ Debug.Log("Android Call =" + ret);}
}
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
AndroidCallBack call = new AndroidCallBack ();
AndroidJavaObject joCall = new AndroidJavaObject("com.test.callback,TestMoudle", call );
joCall .Call("TestInit", jo,"unityCallAndroid" );
}
将java 代码打包成aar 放置在Plugins/Android/目录下即可实现回调。不需要去通过实现unityplayeractivity 继承去去实现回调操作了