Answered by
7 years ago Edited 7 years ago
I'm pretty sure you used the wrong service.
ContextActionService
binds a set of inputs to a function. To bind a function to a keyboard button with this service, call the function BindAction
. So, to print a string when the W key is pressed, a function can be bound like so:
1 | function onKeyPress(actionName, userInputState, inputObject) |
2 | if userInputState = = Enum.UserInputState.Begin then |
7 | game.ContextActionService:BindAction( "keyPress" , onKeyPress, false , Enum.KeyCode.W) |
UserInputService
binds functions to input via its events, such as InputBegan
or InputEnded
. These events fire on any input change, so it is important to check for the particular input you are interested in when handling the function. So, to print a string when the W key is pressed, a function can be bound like so:
1 | function onKeyPress(inputObject, gameProcessedEvent) |
2 | if inputObject.KeyCode = = Enum.KeyCode.W then |
7 | game:GetService( "UserInputService" ).InputBegan:connect(onKeyPress) |
I think you needed to use UserInputService
instead of ContextActionService
. Try that. If it helped, upvote and accept answer. Thanks! (Snippets of code are from the wiki, same with the description on ContextActionService and UserInputService)