通过 Unity 中提供 AndroidJavaClass, AndroidJavaObject 两个类及其方法
参考:
AndroidJavaObject
Unity --> Android
C#
if UNITY_ANDROID
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("functionInAndroid");
#endif
前两行不可改动,另外可以调用静态方法:
jo.CallStatic("functionInAndroid");
可以调用一个带有返回值的方法:
bool b = jo.Call<bool>("functionInAndroid");
可以向 Android 方法中传递参数:
jo.Call("functionInAndroid", "parameter");
Android Java
public void functionInAndroid() {
Log.d("unity", "functionInAndroid is called.");
}
标准的 java 方法
Android --> Unity
UnityPlayer.UnitySendMessage("GameObject", "FunctionName", "");
参数一:游戏体名称
参数二:脚本中方法名
参数三:传递参数