Unity3d 對接android SDK
從Unity3D到Android工程
為了實現交互,我們采用的是簡單的函數相互調用。如果我們在Unity3D中想調用Android代碼,那么可以在腳本文件C#中這樣寫:
AndroidJavaClass jc =newAndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity= jc.GetStatic("currentActivity");
activity.Call("UnlockGame")
代碼注釋:
1.第一行 ?構造了"com.unity3d.player.UnityPlayer"類的一個對象
2.第二行 ?獲取了本類的靜態成員"currentActivity"
3.第三行 ?取得了activity就可以調用Android代碼了 這個UnlockGame函數是簡單的成員方法,一般直接寫在MainActivity中
Android 調用Unity3D 的方法
UnityPlayer.UnitySendMessage("AndroidManager", "AndroidCallBackUnlockGame", "");
Android中調用Unity中的方法 “AndroidCallBackUnlockGame”
三個參數表示的意義:
第一個參數Unity3D 中的某個GameObject
第二個這個Gameobject 上的腳本的某個方法AndroidCallBackUnlockGame
第三個 AndroidCallBackUnlockGame這個方法的參數
Unity3D 中同時調用多個jar工具
Unity程序一起動就會調用這個Activity,它是在AndroidManifest.xml中配置的。它需要繼承UnityPlayerActivity,如果同時需要啟動多個插件工具時需要注意下面幾個方面的內容:
? 1.如果啟動的插件沒有其他的任何依賴項可以使用靜態方法直接用
? ? ? publicvoidStartActivity1(Stringname)
? ? ? ?{
? ? ? ? ? ? ?Intent intent=new Intent(mContext,TestActivity1.class);
? ? ? ? ? ? ?intent.putExtra("name",name);
? ? ? ? ? ? ?this.startActivity(intent);
? ? ? }
? 2. 如果有依賴項 可以用要啟動的Activity 繼承 主Activity 然后把要啟動jar包需要的內容添加到 主Activity