如何在Roblox Studio中只有角色移动时更新速度值?

当玩家移动时,我如何只更新他们的速度(这比使用“while true do”循环更容易) 我有以下代码:

local player = game:GetService("Players").LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

while humanoid.MoveDirection.Magnitude > 0 do
  humanoid.WalkSpeed = player.leaderstats.Speed.Value
end

原文链接 https://stackoverflow.com/questions/70795555

点赞
stackoverflow用户2858170
stackoverflow用户2858170

不要在提供事件的游戏中使用循环。无论如何,这个循环都会让你的代码卡住。

唯一需要改变速度的时刻是当领导速度改变时。那么为什么不实现一个处理器来处理“Changed”事件以更新其他玩家的速度呢。

例如:

https://developer.roblox.com/en-us/api-reference/event/NumberValue/Changed

local function printValue(value)
    print(value)
end

Workspace.NumberValue.Changed:Connect(printValue)

Workspace.NumberValue.Value = 20
2022-01-21 10:45:13