Roblox Studio中如何更新Module Script的变量并同步到所有引用脚本
解决方案
核心问题
你当前的模块脚本scriptOne存在执行阻塞:模块加载时会优先运行内部的while true死循环,直接导致return module语句永远不会被执行。scriptTwo调用require()时会一直等待模块返回结果,自然无法完成变量修改,也看不到打印值更新。
修复代码
修改后的scriptOne(模块脚本)
local module = {} module.test = 100 -- 用独立协程运行循环逻辑,不阻塞模块返回 task.spawn(function() while true do task.wait(1) print(module.test) end end) return module
原有scriptTwo代码无需修改
local data = require(workspace.playerStats) data.test = 0
效果说明
- 模块脚本的返回逻辑不再被阻塞,所有脚本调用
require()都能正常拿到同一份模块表引用 - Lua中table为引用类型,任意脚本修改表内字段后,其他所有引用该表的逻辑(包括模块内的循环打印逻辑)都能读取到最新值。修复后运行项目,会先打印1次初始值100,
scriptTwo执行后后续打印的数值都会变为0,其他脚本require该模块也能读到更新后的test值。
内容的提问来源于stack exchange,提问作者Solar Flare
相关产品推荐
相关产品推荐

