Roblox 上下文操作触发两次

Roblox ContextAction trigers twice

我尝试使用 Roblox ContextActionService 在 roblox 中为移动设备创建一个按钮,但是当我按下 gui 按钮时它会触发,当我释放它时它也会触发我希望它在我按下按钮时触发一次

function tpggle()
    print("L pressed")
end
ContextActionService:BindAction("ToggleLight", tpggle, true, Enum.KeyCode.L)
ContextActionService:SetTitle("ToggleLight","L")
ContextActionService:SetPosition("ToggleLight",UDim2.new(1, -97,1, -133))

I expected:
  L pressed
I got:
  L pressed(x2)

您的操作处理程序 tqggle 很可能被调用了两次。一次按下按钮,一次释放按钮。

试试这个:

function tpggle(actionName, inputState, inputObj)
  if inputState == Enum.UserInputState.Begin then 
    print("L pressed")
  end  
end

所以它只会在你按下按钮时打印一些东西。

参考

https://developer.roblox.com/en-us/api-reference/function/ContextActionService/BindAction

https://developer.roblox.com/en-us/api-reference/property/InputObject/UserInputState