循环直到键放开或键按下

我想要为游戏制作一个“网络滞后开关”,我想知道如何使效果持续到我按下右控制键时,而不是必须等待7秒钟。如果这不可能,那么它可以是按下直到再次按下去吗?我是从教程中制作的,所以并没有太多的Lua知识,非常感谢任何帮助。

代码:

setting = settings().Network
local Effect = Instance.new("ColorCorrectionEffect")
Effect.Parent = game.Lighting
Effect.Saturation = -1
Effect.Brightness = 0
Effect.Contrast = 0
Effect.Enabled = false
function onKeyPress(inputObject, gameProcessedEvent)
    if inputObject.KeyCode == Enum.KeyCode.RightControl then
        Effect.Enabled = true
        setting.IncomingReplicationLag = 1000
        game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = game.Players.LocalPlayer.Character.Humanoid.WalkSpeed * 3
        wait(7)
        Effect.Enabled = false
        setting.IncomingReplicationLag = 0
    end
end
game:GetService("UserInputService").InputBegan:connect(onKeyPress)

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

点赞
stackoverflow用户2860267
stackoverflow用户2860267

你已经在使用 InputBegan 信号,你可以监听 InputEnded 信号来知道何时停止。

function onKeyDown(inputObject, gameProcessedEvent)
    if inputObject.KeyCode == Enum.KeyCode.RightControl then
        Effect.Enabled = true
        -- ... 在这里做其他事情
    end
end
function onKeyUp(inputObject, gameProccessedEvent)
    if inputObject.KeyCode == Enum.KeyCode.RightControl then
        Effect.Enabled = false
        -- ... 在这里做其他事情
    end
end

local UIS = game:GetService("UserInputService")
UIS.InputBegan:Connect(onKeyDown)
UIS.InputEnded:Connect(onKeyUp)
2021-09-17 17:31:36