上個文章 "Android Studio 匯出 JAR 檔" 中,已經成功的將 Android JAR 檔匯出囉!
現在已經確定流程是正確的了,接下來我們要將 Unity classes.jar 加到專案中。
步驟一:
開啟 Unity 安裝目錄下的 bin 資料夾。
Unity > Editor > Data > PlaybackEngines > androidplayer > release > bin
補充說明,新版的 Unity 的 classes.jar 位置有點不一樣,分別是
Unity > Editor > Data > PlaybackEngines > AndroidPlayer > Variations > mono > Release > Classes
Unity > Editor > Data > PlaybackEngines > AndroidPlayer > Variations > il2cpp > Release > Classes
我想這應該是對應 Android Configuration 底下的 Scripting Backend 吧?這邊我沒測試過,若有人實際測試過的,歡迎分享!
步驟二:
複製資料夾中的 classes.jar 檔案
步驟三:
回到專案中,在 Test > app > libs 上點選貼上
按下 OK 之後,就會複製一份 classes.jar 到專案裡面,但還沒完成喔!
步驟四:
在 classes.jar 上按下滑鼠右鍵,選擇 Add As Library...
再點選 OK 之後就完成囉!
快去看 build.gradle 裡面,是不是多出這行呢?
如果步驟四沒有出現 Add As Library... 選項的話,可以直接將以下程式碼貼到 dependencies 裡面,結果是一樣的。
compile files('libs/classes.jar')
步驟五:
到 Test > app > src > main > java > com.test.tw.test 上按下右鍵,選擇 New > Java Class
建立一個 Class
建立後繼承 UnityPlayerActivity,程式碼如下
package com.test.tw.test; import com.unity3d.player.UnityPlayerActivity; public class MyDialog extends UnityPlayerActivity { }
步驟六:
加入 AlertDialog 對話框,這是一個 Android 內鍵就有的功能,因為非常基本,且不須額外添加權限,是個很好的測試夥伴!可用來測試專案是否成功,
package com.test.tw.test; import android.app.AlertDialog; import com.unity3d.player.UnityPlayer; import com.unity3d.player.UnityPlayerActivity; public class MyDialog extends UnityPlayerActivity { public static void Show(final String title, final String content) { UnityPlayer.currentActivity.runOnUiThread(new Runnable() { public void run() { AlertDialog.Builder builder = new AlertDialog.Builder(UnityPlayer.currentActivity); builder.setTitle(title).setMessage(content).setCancelable(false).setPositiveButton("OK", null); builder.show(); } }); } }
這邊需要注意的是,因為我是用 static 的 function,用 static 的話有個好處,就是我們的 JAR 比較不會跟別的第三方 JAR 衝突,也比較好加到別的第三方 AndroidManifest.xml 裡面。
使用 static 的話,若需要 Context 時,可以使用 UnityPlayer.currentActivity。
只要是寫給 Unity 去呼叫的 function,請記得加上 runOnUiThread 喔!
在接收的參數那邊,記得加上 final,否則在 public void run() 裡面可能會抓不到喔!
步驟七:
匯出 JAR
完成!
參考網站:http://www.thegamecontriver.com/2015/04/android-plugin-unity-android-studio.html
該教學的一系列文章:
Android Studio 匯出 JAR 檔
Android Studio 匯出 JAR 檔 - 加入 Unity classes.jar
Android Studio 匯出 JAR 檔 - 在 Unity 中調用 Android Function
Android Studio 匯出 JAR 檔 - 在 Android 中呼叫 Unity Method
可能會遇到的問題:
Android Studio 匯出 JAR 檔 - 呼叫 Function 無反應
Android Studio 匯出 JAR 檔 - broken class file
留言列表