Roblox Lua值不变
我已经添加了多个不同的NumberValue和BoolValue,但是当我尝试使用以下内容更改这些值时,例如:Roblox Lua值不变,lua,roblox,Lua,Roblox,我已经添加了多个不同的NumberValue和BoolValue,但是当我尝试使用以下内容更改这些值时,例如: local i = 1 for i == 1 game.Workspace.Time.Value = 0 wait(120) game.Workspace.Time.Value + 0.5 end 而且工作区中的数字值不会更改随机旁注:游戏。工作区已弃用,请改用“工作区” 此外,它背后的语法完全错误,这是一个诚实的错误。应该是这样的: -- Assuming
local i = 1
for i == 1
game.Workspace.Time.Value = 0
wait(120)
game.Workspace.Time.Value + 0.5
end
而且工作区中的数字值不会更改随机旁注:游戏。工作区已弃用,请改用“工作区” 此外,它背后的语法完全错误,这是一个诚实的错误。应该是这样的:
-- Assuming "Time" is a 'NumberValue' under workspace
-- Assuming this script is in workspace
local i = 1
while (i == 1) do
local time = workspace:FindFirstChild("Time") -- Usage of the 'FindFirstChild' method
time.Value = time.Value + 0.5
wait(120)
end
然而,这本身就是一种不好的做法,因为这将产生任何你正在运行的线程,对于这一点,我建议使用协同程序
local function addTime()
local varContainer = workspace:GetFirstChild("Time")
repeat
varContainer.Value = varContainer.Value + 0.5
wait(120)
until false
end
local newThread = coroutine.create(addTime) -- Create the new coroutine
coroutine.resume(newThread) -- Run it forever in another running thread
如果lua与其他语言一样工作,
game.Workspace.Time.Value+0.5
不会覆盖Value
的旧值。它将数字相加,然后丢弃结果。你可能需要<代码>+=。此外,在每个循环开始时都会将其重置回0,因此即使该值发生了变化,它会立即被更改回0。没有理由将协同路由引入到这个中。是的,我不知道是否是协同路由,但当我在测试studio时尝试检查时间时,Crassesi只是将协同路由作为一种不同的途径,假设这将是一个驱动程序脚本,更多内容将跟随此块。