C# 对Unity的回调为null

C# 对Unity的回调为null,c#,android,unity3d,java-native-interface,unity5,C#,Android,Unity3d,Java Native Interface,Unity5,我在Unity中创建了一个回调,使我能够将结果从Android应用程序发送回Unity应用程序。我更喜欢这个而不是UnitySendMessage,因为它更“干净” 我使用了这里给出的准确示例: 统一c#代码: 出于某种原因,startup()中的参数startUpCallback始终为null 我试着把它转移到构造函数,结果是一样的。 奥托,活动的价值是可以的 我错过了什么吗?也许问题在于您的C#proxy没有正确实现Java接口。注意“on/on”一词的大小写差异 public class

我在Unity中创建了一个回调,使我能够将结果从Android应用程序发送回Unity应用程序。我更喜欢这个而不是UnitySendMessage,因为它更“干净”

我使用了这里给出的准确示例:

统一c#代码:

出于某种原因,startup()中的参数startUpCallback始终为null

我试着把它转移到构造函数,结果是一样的。 奥托,活动的价值是可以的


我错过了什么吗?

也许问题在于您的C#proxy没有正确实现Java接口。注意“on/on”一词的大小写差异

public class MoviePlayer : MonoBehaviour {

// Use this for initialization
void Awake () {

    AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity");


    StartUpCallback startupCallback = new StartUpCallback();
    AndroidJavaObject control = new AndroidJavaObject("vrbridge.Control", activity);
    //control.Call("startUp");
    control.Call("startUp", startupCallback);

}

class StartUpCallback:  AndroidJavaProxy
{
    public StartUpCallback() : base("vrbridge.StartUpCallback") { }

    public void OnSuccess() { }
    public void OnFailure() { }
}
}
public class Control implements LibraryManagerInitStartDialogFragment.ConfigurationFragmentListener{

String TAG = "QuickPlayTest";


private Activity _activity;
private StartUpCallback _startUpCallback;

public Control(){
    Log.d(TAG, "Constructor.");

}

public Control(Activity activity){
    Log.d(TAG, "Constructor. Activity = " + activity);
    _activity = activity;
}


public void startUp(StartUpCallback startUpCallback){
    Log.d(TAG, "startUp. Callback = " + startUpCallback);
    _startUpCallback = startUpCallback;
    new LibraryManagerInitStart(_activity, this);
    Log.d(TAG, "startUp - end");
}
}

public interface StartUpCallback {
    public void onSuccess();
    public void onFailure();
}