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