Unity3d 對接android SDK

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容