搜尋此網誌

2021年7月25日 星期日

Unity 與 android 整合

 緣起:


    昨天大部份時間都在研究怎麼將 android 與 unity 結合,它們都有各自的長處,所以,怎麼在 unity 中始用 android 原生的功能,或是怎麼在 android 設技中嵌入 unity 的頁面就變成我好奇的一個點,在這邊整裡一下我找到的有用資源,方便之後再回頭看。

不知要放什麼,所以就放我家那隻臭狗很小時候的圖片


Unity 打包成 Library 加到 Android App:


原文連結


    GitHub 上面的東西,操作寫得很詳細,只要下載它提供的 Unity 與 Android 專案後,照著指示一步一步做,就能達成 (但我目前還是看不懂 gradle 的東西,之後大概要花時間學學了)。

    不過,在我整個步驟都弄好,要把程式傳到 android 虛擬機上時,android studio 就報錯,我也不知為啥會發生這種錯誤。

build 是成功了,不過在安裝時出錯

    後來我換成用我平板的 usb debug 模式測試後,居然就成功了 ??? 算了,能跑就好。簡單來說,它一開始進入 app 後,會有兩個 button ,你按下 SHOW UNITY 後,Unity 的 Activity 就會被開啟,你就能進入 Unity 的頁面。

android 介面

unity 的介面

    它應該是沒特別為平板大小的螢幕專門設計啦,所以才會一堆跑板,不過,Button 按下後都有正常反應。我後來還發現,安裝上去的其實是兩個 app ,一個是 android 介面,叧一個是 unity 介面的,也就是說,我能單獨開啟那個 unity 的介面。


    至於它程式碼的部份....,大概之後再研究好了,有稍微看看,發現很多地方看不懂 ~~


Unity - Android Plugin:


原文連結


    這東西就是,教你怎麼在 android studio 那邊寫好 android 的功能,再把寫好的東西打包成 jar 檔到 unity 裡面呼叫。啊他的文章就寫得很好了,我這邊也就不重覆他的動作來獻醜了,但有些地方我在操作時出了點問題,所以下面就來記錄下我覺得值得記錄的部份。

    第 3 步那邊,要在安裝 unity 的目錄下找一個叫  classes 的 jar 檔,然後把那個檔案加到 android 專案的 libs 資料夾裡,再把它加為程式庫,這樣就能 import unity 的功能。不過可能是因為它 unity 的版本跟我不同 (我是 2019.3.5f1),所以有些路徑不同,我最後是找個大概的位置後,用 windows 的搜尋檔案功能,才找到那個檔案,它在 Unity\Hub\Editor\2019.3.5f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Development\Classes 裡。

    第 12 步那邊,我 build 成功後,我並沒有在看到 app 下有 release 這個資料夾,所以我後來就直接去 app 的 build 那邊找,最後在 build\intermediates\aar_main_jar\release 裡找到那個 classes.jar 檔。

    之後,我把那個 jar 檔丟到 unity 測試,由於我那時是寫個呼叫 Toast 的 function,在電腦上測試時並沒有跑出來 (大概是要在手機上跑才會顯示),我也就不知道我寫的 android pluging 到底有沒有用,可能之後再 try try 吧。


在unity中使用內置android方法:


    我注意到在上面那個文章的最後,它有說要在 unity 的 C# 裡使用 AndroidJavaClass 這 class,看這名字,該不會我能透過這個 class 來取得 android 原生的 class ,並使用嗎 ? 一查果然如此,而且還找到了一篇很強大的教學文。

原文連結


    然後就 copy 了他的 toast 程式來試試

整個照搬到 Start 中 XD

    跑的時候沒有出現 toast ,反而出現了錯誤訊息。


    很討厭,我看不懂。後來想到,說不定是因為它在 run 的環境是電腦,所以才報錯,如我把它 build 成 apk ,再安裝到平板上,說不定就會顯示了。


    呀呼 ! 我真的猜對了,在 android 裝置上就能正常顯示 Toast 訊息 (那個 test),真的是邁進了好大一步,超開心的。

沒有留言:

張貼留言