現在有許多unity遊戲都採用了熱更新的方式更新內容,最普通的熱更方式就是用lua指令碼,那麼在設計熱更方式時,哪些內容需要用lua來寫,哪寫用c#來寫?熱更新如何架構?更新流程如何設計呢?
一般來說凡是效率相關的(比如地圖排序,尋路),平滑顯示相關的(比如人物移動,頭頂血條位置)都用c#寫,凡是涉及到伺服器通訊,邏輯狀態的,都在lua寫。或是經常變動的邏輯,比如活動相關的邏輯都用lua來寫。
筆者覺的,熱更架構應該設計成可插拔的,即最好lua部分對整個專案來說是透明的,這樣是最靈活的一種機制,可以隨時切換,c#部分可以隨時替換,而不用提前設計好哪些要用lua來代替,哪些要用lua修bug.
以上是一些大概的總結,之後筆者專門講一下實現篇
Unity之熱更初探
由於c 是編譯 解釋型的語言,所以遊戲在出包之後想要再修改一些程式就比較困難。通過不斷查詢找到幾種可行的方案 1.更新dll,利用反射做 的更新。在ios上有限制,無法使用 2.引入嵌入式指令碼語言lua。有tolua xlua等框架 3.採用ilruntime等第三方框架。最終還是選擇xlua框架...
Unity實驗室之Shader優化
最近有人問到寫shader需要注意哪些地方及如何優化,正好筆者也在研究這方面,這裡主要針對unity來說,其它平台或引擎也可以參考,本文主要分如下幾個方面來說 shader的選擇,屬性和狀態的設定,資料型別選擇,編寫,舉例,除錯 unity中現在可以新建4種shader,分別是standard su...
Unity實驗室之選擇哪個Unity版本
unity版本公升級比較快,版本比較多,筆者寫這篇文章時官方正式版是2017.3,正在測試的版本是2018.1,筆者專案現在使用的是unity5.6.4,而且還有各種各樣的補丁版本,那麼我們在開始新專案或面對老專案該不該公升級的問題上該如何選擇呢?選擇版本時,筆者覺的應該仔細考慮以下幾點 穩定性。如...