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
我尝试使用 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