2 votes

Roblox ContextAction se déclenche deux fois

J'ai essayé d'utiliser le ContextActionService de Roblox pour créer un bouton dans roblox pour mobile mais quand j'appuie sur le bouton du gui, il se déclenche et quand je le relâche, il se déclenche aussi. Je veux qu'il se déclenche une fois quand j'appuie sur le bouton.

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)

3voto

Piglet Points 7662

Votre gestionnaire d'action tqggle est très probablement appelé deux fois. Une fois pour avoir appuyé sur le bouton, une fois pour avoir relâché le bouton.

Essayez ça :

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

Il n'imprimera donc quelque chose que si vous appuyez sur le bouton.

Se référer à

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X