前言:如果你在考慮unity的熱更新問題,那么有幾種方案可以供你選擇 1. 選擇lua :可以保證你的ios+android平臺更新,缺點:lua調試很蛋疼,不是面向對象的語言(雖然你可以用table來作為假定的面向對象,但是這里我說的是標準的面向對象) 2. 選擇反射:可以做到ios+android平臺更新,缺點:不能掛載mono腳本到你的PRefab上,所有的東西你都需要去通過find查找這個prefab下的節點 3. 選擇libmono:可以做到android平臺熱更新,缺點:ios做不到 4. 選擇其他的類lua的東西,這里不做介紹
這里給你一個建議:如果你需要快速開發那么請選擇3,因為這種方式開發是最友好的,并不會對開發者造成任何的問題,和以前開發一樣,如果你想雙平臺更新那么請選擇1,其他方案我都不推薦了
我們游戲就屬于需要快速開發,所以我們選擇了3,之前了解了一些文章,在windows下嘗試過編譯mono源碼,但是一直有些環境安裝不了,加之當時的事情太多所以就交給其他同學在處理這個東西,后來他在mac下成功編譯了,我這里也是借他的編譯過程簡單的記錄下。網上可能有很多的介紹,但是我這里以最簡單的方式來完成這個過程。
首先你需要安裝一個叫brew的東西,這個東西簡單來說就是為你安裝其他軟件的一個裝載器,有了這個東西本文的環境基本上不用擔心了(有些mac版本已經有了這個就跳過這個步驟)。具體只需要在終端輸入
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"然后就靜靜的等待他的安裝,國外的東西都挺慢的,所以不要放棄。
brew install autoconf automake libtool pkg-config
這里是不是突然覺得mac下好舒心,裝東西就這么方便,只需要一個命令就可以去喝茶了。這里就安裝了4個軟件了。
下載你的mono對應的版本,并存放到本地非中文目錄(一定要非中文的目錄,否則編譯失?。┫螺d地址 https://github.com/Unity-Technologies/mono
本地存放在mono/metadata/image.c這個文件 下載地址:http://download.csdn.net/detail/pdw_jsp/9751495一共四處修改 都帶有 EditFlag
把/mono-unity-x/external/buildscripts/build_runtime_android.sh復制到/mono-unity-x根目錄下 并 cd到這個目錄,然后執行
bash /mono-unity-x/external/buildscripts/build_runtime_android.sh
等待幾分鐘編譯結束后在build下可以找到們編譯后的so文件
拷貝編譯后的so文件到unity安裝目錄下。例如如下路徑
C:/Program Files (x86)/Unity/Editor/Data/PlaybackEngines/androidplayer/release/libs/armeabi-v7a/libmono.so更新測試這里就不給出了。可以自己寫個簡單的測試例子然后放到android機器上驗證以下就可以了,我這里是經過了驗證的。
總結:重新編譯libmono其實就是為了重新指定dll的讀取路徑,讓我們每次更新的dll變成當前的dll即可
新聞熱點
疑難解答