通過 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", "");
參數一:遊戲體名稱
參數二:腳本中方法名
參數三:傳遞參數