Android中調用Unity3D探索

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尚未加載完成或已結束,導致功能延遲。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章