簡體   English   中英

Unity3d 與 android 集成

[英]Unity3d integration with android

我需要創建一個 android 應用程序,它由在 Unity3d(動畫等)和 AndroidSDK 上編寫的部分組成(通過 androidSDK,我的意思是在 java 中編寫的一些活動,清單和資源)

事實上我已經有了這些部分(至少模擬已經准備好了=))而且我不知道如何在它們之間進行通信。

我已經閱讀了很多關於 unity3d android 集成的文章(主要是關於“插件”的東西)並且未能理解這個工作人員的工作方式=(我理解的主要內容(每個官方參考文獻都寫過)是關於插件的文檔很窮... =)

我能理解的唯一通信方式是從 unity3d 腳本(使用 AndroidJavaClass 和 AndroidJavaObject)發出意圖(廣播),以便我的活動(用 java 編寫)可以處理它。 但有件事告訴我這不是最好的解決方案......

我讀到的關於這個問題的內容是我需要使用 JNI(這是 java 本機接口 - 為什么??? - 為什么我需要使用本機代碼?)

我是否需要在 java 上創建一些中級代碼,目的是與我的 java 活動進行通信,使用 AndroidNDK 編譯它並作為插件包含到我的 Unity3d 項目中? 我怎么能寫那個中間層呢? 我是否需要使用 UnityPlayer 而不是“Activity”作為基礎 class,為什么?

Here is a tutorial on the basics of running Unity inside of a normal Android app .

Android視圖中運行Unity有很棒的教程。 啟動並運行后,您可以輕松地在應用程序的任何位置嵌入場景。

當您需要從Unity調用Java Android應用程序時,您可以添加以下代碼:

AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

然后,您可以通過AndroidJavaObject活動調用您想要的任何活動方法。 像這樣的東西:

activity.Call("yourFunctionName", parameters);

要在Android上完全支持,您不需要在java上創建一些中級代碼。

相反,你應該:

  1. 在Android SDK上創建一個Lib項目。
  2. 創建1個主要活動擴展UnityPlayerActivity
  3. 創建其他您需要的活動並將其添加到Manifest中。
  4. 創建資源,布局......
  5. 通過將所有JAR資源文件復制到Assets / Plugins / Android文件夾,導出到JAR並將其添加到Unity中。

此方法有助於編寫推送通知,應用計費等...

Ref#here: http ://docs.unity3d.com/Documentation/Manual/PluginsForAndroid.html( - >擴展UnityPlayerActivity Java代碼)

此外,通過使用以下代碼:

AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
activity.Call("yourFunctionName", parameters);

您可以在Unity上使用Android完成大部分神奇的事情

注意*:yourFunctionName必須在主活動中實現,該活動從UnityPlayerActivity擴展(請參閱步驟2)

問候,

現在根本不需要 2020 年的 unity3D android SDK。 你可以直接點擊文件 -> 構建設置 -> 切換平台 -> 構建。

你可以創建你的 android 應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM