Search code examples
javaandroidunity-game-enginescriptingnative

What is difference between AndroidJavaObject and AndroidJavaClass in Unity


I made a plugin for my android game And for calling this plugin in my unity scripts I do not know to use AndroidJavaObject or AndroidJavaClass.

Because in some of the tutorials that I saw, they doing something like this :

AndroidJavaObject test = new AndroidJavaObject("com.aaa.bbb.ccc");
test.Call<string>("tester");

and in otherone tutorials :

AndroidJavaClass test = new AndroidJavaClass("com.aaa.bbb.ccc");
myClass.Call("testMethod", new object[] { "testString" } );

and in some others they do :

AndroidJavaClass test = new AndroidJavaClass("com.aaa.bbb.ccc");
AndroidJavaObject unityActivity = test.GetStatic("currentActivity");

I just want to know what is difference between this ways ? And Which one is better?


Solution

  • AndroidJavaObject is for creating instances of that class and calling instance methods on it.

    AndroidJavaClass is for calling static class methods or accessing static fields.

    Depending on the java API you have to you use either AndroidJavaObject or AndroidJavaClass.