InputDetection
Checks if a button is pressed
#
Examplelocal player = CL.InteractCharacter.PlayerInstanceif player == nil then returnend
local leftHand = player.hands[1]local rightHand = player.hands[0]
local xButton = leftHand.inputs[CL.VRTKInputButton.ButtonType.ButtonOne]local yButton = leftHand.inputs[CL.VRTKInputButton.ButtonType.ButtonTwo]local aButton = rightHand.inputs[CL.VRTKInputButton.ButtonType.ButtonOne]local bButton = rightHand.inputs[CL.VRTKInputButton.ButtonType.ButtonTwo]
if xButton.IsPressed then print("you pressed the X button")end
if yButton.IsPressed then print("you pressed the Y button")end
if aButton.IsPressed then print("you pressed the A button")end
if bButton.IsPressed then print("you pressed the B button")end
#
User VariablesNo user variables.
#
FAQ#
Do you have an example on how you would use this in a script?Sure. Here is a script which you can call in an InteractTriggerX
.
function table = {}
function table:OnGrab(a, g) self.hand = a.attachedHand self:ListenForButtonInput()end
function table:ListenForButtonInput() local detectButtonInput = function(sche, t, s) if IsNullOrDestroyed(self.trans) then sche:Stop() CL.Scheduler.RemoveSchedule(self.ButtonSchedId) return end
-- gets the a/x button of respective hand local buttonIsPressed = self.hand.inputs[CL.VRTKInputButton.ButtonType.ButtonOne].IsPressed if self.isPress and not buttonIsPressed then self.isPress = false
print("buttonReleased") end if not self.isPress and buttonIsPressed then self.isPress = true print("buttonPressed") end end
self.ButtonSchedId = CL.Scheduler.Create(self.trans, detectButtonInput ,0, -1).actionIdend
return Class(nil,nil,table)
#
Any other functions I can use with buttons?Yes! you can also check if it's being touched, heldDown, and more! Check here