2017-02-21 6 views
0

私はUnityでコールバックを作成して、AndroidアプリからUnityアプリケーションに返すことができます。私はUnitySendMessageのほうが好きです。なぜなら、それはずっと「クリーナー」なのですから。Unityへのコールバックはnullです

私はここに与えられた正確なeample使用:Callback Listener in Unity - How to call script file method from UnityPlayerActivity in Android

ユニティC#コード:

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() { } 
} 
} 

のAndroidコード:何らかの理由で

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(); 
} 

起動時のパラメータstartUpCallbackを()は常にありますヌル。

同じ結果でコンストラクタに移動しようとしました。 OTOH、アクティビティの値は大丈夫です。

私は何かを見逃しましたか?

答えて

0

おそらく問題は、C#プロキシがJavaインターフェイスを正しく実装していないことです。 "on/on"という単語の大文字と小文字の違いに注意してください。

関連する問題