如何编写我的 ROBLOX ClickDetector 脚本只允许点击输入一次,这样脚本只播放一次并且不能被发送垃圾邮件?

How do I script my ROBLOX ClickDetector only allow click input once, so the script only plays once and cannot be spammed?

请帮我编辑我的脚本,以便在单击 block/part 时只执行一次脚本?我不希望能够多次单击 block/part 并且每次单击都会播放脚本。当单击 block/part 时,它应该只移动到规定的距离。

我的脚本:

处理这个问题的一个简单方法是在单击一次时将布尔值从 false 设置为 true,并在函数顶部检查该布尔值是 true 还是 false,然后再继续。

local debounce = false
function foo()
   if not debounce then
      debounce = true
      print("Hi!")
   end
end

foo() -- Will print "Hi!"
foo() -- Will not print anything

您可以将相同的逻辑应用于您的脚本。 如果您确定只希望这种情况发生一次,您也可以在 OnServerEvent 事件运行后断开连接。事件连接可以存储为变量,然后用 :Disconnect() 编辑,类似于 :Connect()。

local myConnection
myConnection = myEvent:Connect(function()
   myConnection:Disconnect()
   print("Hello!")
end)
myEvent:Fire() -- Prints "Hello!"
myEvent:Fire() -- Does nothing, because it is no longer connected/listening for input.