Unity中AndroidJavaObject和AndroidJavaClass有什么区别

ima*_*_sh 1 java scripting android native unity-game-engine

我为我的 android 游戏制作了一个插件,并且在我的统一脚本中调用这个插件,我不知道如何使用AndroidJavaObjectAndroidJavaClass

因为在我看到的一些教程中,他们做了这样的事情:

AndroidJavaObject test = new AndroidJavaObject("com.aaa.bbb.ccc");
test.Call<string>("tester");
Run Code Online (Sandbox Code Playgroud)

在其他教程中:

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

在其他一些情况下,他们这样做:

AndroidJavaClass test = new AndroidJavaClass("com.aaa.bbb.ccc");
AndroidJavaObject unityActivity = test.GetStatic("currentActivity");
Run Code Online (Sandbox Code Playgroud)

我只是想知道这种方式有什么区别?哪一个更好?

Jea*_*Luc 5

AndroidJavaObject用于创建该类的实例并调用其实例方法。

AndroidJavaClass用于调用静态类方法或访问静态字段。

根据 java API,您必须使用AndroidJavaObjectAndroidJavaClass