由require(module_name)來決定,
通過package.loaded[module_name] = nil 強制刪除,然後再require(module_name),當然在更新之前必須要先儲存原來模組,local old_module = _g[module_name],然後將引用的模組逐一替換之前引用該模組的可以熱更替換掉
//貼**
function reload_moudle
(moudle_name)
local old_name = _g[moudle_name]
--儲存引用的
package
.loaded[moudle_name]
= nil
require
(moudle_name)
--載入新的
local new_name = _g[moudle_name]
for k,v in pairs
(new_name)
do old_name[k]
=v --引用成新的
endpackage
.loaded[moudle_name]
= old_name --重新新增
end
Lua室驗室之Unity熱更設計
現在有許多unity遊戲都採用了熱更新的方式更新內容,最普通的熱更方式就是用lua指令碼,那麼在設計熱更方式時,哪些內容需要用lua來寫,哪寫用c 來寫?熱更新如何架構?更新流程如何設計呢?一般來說凡是效率相關的 比如地圖排序,尋路 平滑顯示相關的 比如人物移動,頭頂血條位置 都用c 寫,凡是涉及到...
iOS熱更新實現方式
最近公司要新增熱修復bug,其實早之前本人就有簡單實現過,剛好契合公司需求,在此總結一下ios熱更新實現方式 這個是我根據jspatch寫的乙個demo 一 jspatch 熱更新時,從伺服器拉去js指令碼。理論上可以修改和新建所有的模組,但是不建議這樣做。建議用來做緊急的小需求和 修復嚴重的線上b...
iOS熱更新實現方式
這個是我根據jspatch寫的乙個demo github.com tikeyc tjsp 一 jspatch 熱更新時,從伺服器拉去js指令碼。理論上可以修改和新建所有的模組,但是不建議這樣做。建議用來做緊急的小需求和 修復嚴重的線上bug。複製 二 lua指令碼比如 wax。熱更新時,從伺服器拉去...