關於Unity3Dproject與androidproject的轉換與合並,請參考我的另外一篇博客。假設你對Unity3Dproject增加到androidproject的過程不熟悉。也請先看完以下這篇博客:
android與Unity3D交互,fragment顯示unity3d視圖。
以下,我們來說說本博客的終端,Unity3D調用android的方法:
1.首先,在網絡上大家能夠看到非常多把android project打包,然后以插件的方式,放入Unity3D工程中來調用的方式,這樣的方式,我不做評論,可是非常麻煩,所以我也沒有進行嘗試。大家有興趣能夠到網絡上搜索一下看看。
2.假設講Unity3D的project導出為android project然后進行再次開發的過程中。須要Unity3D調用android的方法,這個時候,再使用1中的方法。顯然是不合適的。
那么我們要怎么樣來做呢?分為以下幾部分:
1.在初始化UnityPlayer的Activity中加入方法,例如以下:
/** * 測試Unity調用Android的方法 */ public void testMethod(String param){ System.out.println("參數為:"+param); }
對於提供的方法,不能夠進行UI操作,由於Unity3D對於android的UI線程來說,僅僅是個子線程。假設要進行UI操作,能夠使用Handler發消息。
2.在Unityproject中。利用c#文件來書寫,Unity調用的代碼:
public static void ActivateShareImage(string content) { if (Application.platform == RuntimePlatform.IPhonePlayer) { _PressButton3(content); } else if (Application.platform == RuntimePlatform.Android) { UISystem.Console("test method!"); AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); jo.Call("testMethod", "unity"); } else { } }3,假設你已經有android項目了,那么就把新修改的Unity3D的項目導出為android project的,把新導出的project中的assets的目錄,替換掉之前老的project中的,這樣做的目的是更換Unity的修改,假設修改了其它的東西,也是這樣更換的。可是假設你的assets目錄下還有其它資源。請保留。
假設。你沒有android項目,那么就把Unity3D的項目導出為android的project項目使用。
4.對於AndroidJavaClass這個類。以及它提供的方法,大家能夠參考以下的站點:
這樣,就能夠完畢調用了。根本就不須要使用插件。關於android向Unity3D發送消息,日后會發博客敘述。