unity 给android 传递多参

androidjavaclass

1
2
AndroidJavaClass jc = new 	AndroidJavaClass("com.au.classroom.UnityPlayerActivity");
jc.CallStatic("TryClass","31",32.0f);
  • 在callstatic param object[] 传入对应个数和类型的参数

AndroidJNI

1
2
3
4
5
6
7
IntPtr clazzPtr = AndroidJNI.FindClass("com.au.classroom.UnityPlayerActivity");
IntPtr methodPtr = AndroidJNI.GetStaticMethodID(clazzPtr, "SaveAchievement", "(I)V");

var args = new object[1];
args[0] = rightcount;

AndroidJNI.CallStaticVoidMethod(clazzPtr, methodPtr, AndroidJNIHelper.CreateJNIArgArray(args));
  • clazzPtr 获取java类
  • methodPtr 获取对应的方法
    • 第二个参数为方法,第三个参数为对应方法里面的参数类型 比如 string 对应 Ljava/lang/String ; int 对应 (I)V ;两个int就为 (II)V
  • AndroidJNI.CallStaticVoidMethod 第三个参数为要传的对应数据