Я только начал узнавать о том, как подключить мой SDK, разработанный в Android, к моему проекту Unity3D.
Но классы JNI и Unity, такие как AndroidJNI, все еще очень расплывчаты для меня.
Например, см. Нижеприведенный код, использующий AndroidJNI.FindClass: (с This Post )
cls_Activity = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");
fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");
obj_Activity = AndroidJNI.GetStaticObjectField(cls_Activity, fid_Activity);
kdataActivityClass = AndroidJNI.FindClass("com/kdata/unitytest/UnityUrlPlugin");
startAdsMethod = AndroidJNI.GetMethodID(kdataActivityClass,"getURL","(I)Ljava/lang/String;");
jvalue[] myArray = new jvalue[1];
myArray[0].i =testvalue;
gui.text= AndroidJNI.CallStaticStringMethod(obj_Activity, startAdsMethod, myArray);
Сравните его с этим фрагментом кода, использующим класс AndroidJava: (с по этой ссылке )
private AndroidJavaClass ajc;
private AndroidJavaObject ajo;
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
ajo = jc.GetStatic<AndroidJavaObject>("currentActivity");
var exampleSDK = new AndroidJavaClass("com.example.sdk.ExampleSDK");
var videoObj = new AndroidJavaObject("com.example.sdk.VidoSchema");
exampleSDK.CallStatic("lanuchSDKMethod", ajo, SERIAL, videoObj);
Похоже, оба они делают одно и то же. В чем разница между ними?
Также, если вы можете дать мне все, что я смогу прочитать об этом, это было бы здорово.