Android中調用Unity3D探索
調用方式
Android中調用U3D可以通過:
public static void UnitySendMessage(String var0, String var1, String var2)
第一個參數是指:調用方法所在腳本文件對應的gameobject名稱,
第二個參數是指:調用方法名稱,
第三個參數是指:調用參數(如果有多個參數,需要自己拼接,在Unity端接收後再拆解成多個參數)
此方法內部調用的是:
private static native void nativeUnitySendMessage(String var0, String var1, String var2);
在Unity3D和Android生命週期的測試中,我們發現Unity的生命週期要晚於Android,因Unity3D的調用在OnResume之後開始,也就意味着如果在Android端調用Unity端方法時,建議在OnResume後,否則因爲Unity的加載等因素,會導致調用必須在OnResume之後才能完成。
以下是在Android生命週期中調用Unity3D相應處理方法的測試。
測試
測試發現:
在Android在調用Unity的方法需要在OnResume後才能得到Unity的響應,同樣,在鎖屏後android中可以正常響應,但Unity端已無法響應,需要等亮屏後且onResume後才能響應。
總結
若想在Android內調用Unity3D內的功能,建議在OnResume和OnPause間進行,以防因U3D尚未加載完成或已結束,導致功能延遲。