Unity3d dll 熱更新 基礎框架


APK包裝到用戶手機上后,代碼如何更新,總不能全用LUA吧?特別是代碼非常多的戰斗手游

 

昨晚上有了dll 熱更新的想法,今天做了一天的實驗,也遇到些坑,這里總結下

工作環境: U3D5.3.2 + vs2010 +mono

下面要模擬的是一個登陸環境,點擊按鈕,就加載一個iGameObjec的Item,  Item 上得到更新的文本內容。具體如下圖

 

1> 程序集管理

2> Dll管理與加載 

3> 邏輯代碼和UI的實現 

4> 打包dll+打包Assetbundle

 

 

限制1:在Android手機里動態加載dll不能使用Assembly.LoadFile(string path),只能使用Assembly.Load(byte[] rawAssembly)這個接口,所以要自己想辦法先讀出來。


限制2:動態加載的腳本不能在編輯器里掛在prefab上。


限制3:如果腳本在動態dll里,調用AddComponent()掛此腳本上prefab上時不能使用AddComponent(“SomeScript”)的方式調用,要用AddComponent(Type.GetType(“SomeScript”))。


限制4:在動態dll里使用[RequireComponent(typeof(SomeScript))]無效,所以不能使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM