我的数字值没有更新,我该如何修复它?

我试图让每秒钟循环更改数字值的值,但它始终返回'nil'或'0'。 我尝试将其添加为影响实际值的本地值以及像将其替换为新的字符串等其他一些事情,但这仍然没有返回任何内容。 这是我的代码,这是返回'0'而不是'nil'或错误的代码。

local SecondsAfterGameStart = game.ServerStorage.SecondsAfterGameStart.Value

while true do
    wait(0.1)
    SecondsAfterGameStart = SecondsAfterGameStart + 1
end
点赞
用户2860267
用户2860267

当您将 SecondsAfterGameStart.Value 保存在本地变量中时,您并没有保留对原始 NumberValue 对象的引用,而是将其值复制到本地变量中。稍后,在 while 循环中,您正在访问和修改变量而不是原始对象,因此更改从未保存到 ServerStorage 中的对象中。

因此,您应该保存整个 NumberValue 而不是仅仅保存它的值。然后您可以直接更新 Value。

local SecondsAfterGameStart = game.ServerStorage.SecondsAfterGameStart

while true do
    wait(0.1)
    SecondsAfterGameStart.Value = SecondsAfterGameStart.Value + 1
end
2021-06-20 21:16:41