2016-06-21 14 views
3

Unity3DからAndroidアクティビティを開くためのシンプルなプラグインを作成しました。パラメータでメソッドをトリガするのに問題があります。何か案は?Unity3D - Androidからのコールスタティックメソッド

Javaコード

public static void Show(Activity activity, String value, String value2) 
{ 
    Intent myIntent = new Intent(activity, DisplayAllUnits.class); 
    myIntent.putExtra("key1",value); 
    myIntent.putExtra("key2",value2); 
    activity.startActivity(myIntent); 
} 

と、それをトリガするためにC#コード

のonCreate

//load units for All Units placement from values 
    Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     value = extras.getString("key1"); 
     value2 = extras.getString("key2"); 

    } 
    a_id=value; 
    p_id=value2; 
中:

var androidJC = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
    var jo = androidJC.GetStatic<AndroidJavaObject>("currentActivity"); 

    var jc = new AndroidJavaClass("secret.package;)but.it.s.correct"); 
    string value = "121"; 
    string value2 = "1400"; 
    jc.Call("Show", jo, "121", "1400"); 

そして、何の問題がある:、 -withoutパラメータ働く、とパラメータ次のエラーがあります:

I/Unity: AndroidJavaException: java.lang.NoSuchMethodError: no non-static method "Ldisplay/io/unity3dplugin/DisplayAllUnits;.Show(Lcom.unity3d.player.UnityPlayerActivity;Ljava/lang/String;Ljava/lang/String;)V" 
            java.lang.NoSuchMethodError: no non-static method "Ldisplay/io/unity3dplugin/DisplayAllUnits;.Show(Lcom.unity3d.player.UnityPlayerActivity;Ljava/lang/String;Ljava/lang/String;)V" 

答えて

3

Callは、インスタンスメソッドを呼び出すためのものです。 CallStaticが必要です。これは静的メソッドを呼び出します。

+0

あなたは私の問題を解決しました;)Unity3Dを学び始めました。ありがとうございました。病気は4分で答えを受け入れる – ramzixp

関連する問題