Unity3d dll 熱更新 基礎框架

APK包裝到用戶手機上後,代碼如何更新,總不能全用LUA吧?特別是代碼很是多的戰鬥手遊編輯器

 

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

工做環境: U3D5.3.2 + vs2010 +monoblog

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

 

1> 程序集管理ip

2> Dll管理與加載 string

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))]無效,因此不能使用。im

相關文章
相關標籤/搜索