lua实现热更方式

由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                 --引用成新的
    end
    package.loaded[moudle_name] = old_name       --重新添加
end 
发布了121 篇原创文章 · 获赞 11 · 访问量 41万+

猜你喜欢

转载自blog.csdn.net/jinxinxin1314/article/details/105259149