Ex; When I press “1”, I want to bind it to Enum.KeyCode.One.
But I gotta make a table containing 10 number to strings.
Is there a hackier way?
Ex; When I press “1”, I want to bind it to Enum.KeyCode.One.
But I gotta make a table containing 10 number to strings.
Is there a hackier way?
The only way I’m aware of is a dictionary like you were already planning on due to it returning a string. (Unless you want to be even more extra)
There’s this on StackOverflow which suggests doing the same.
Why can you not use the default keycodes?
i.e.
local ContextActionService = game:GetService("ContextActionService")
function whateveryouwanttodo()
print("Stuff here")
--code here
end
ContextActionService:BindAction("ButtonPress", whateveryouwanttodo(), false, Enum.KeyCode.One)
To put the above contextactionservice into context, use this link
If I am understanding correctly, you are asking how to figure out what key a given Enum is.
This should be simple enough to figure out; all of the keycode Enums have a name, you can just use tostring()
on the enum to return the name of the KeyCode.
EDIT: I AM WRONG SEE BELOW
This errors. 32 isn’t a valid EnumItem and tostring is a global, not a method. Think you meant to do this:
print(Enum.KeyCode.Space.Name) --> Space
print(Enum.KeyCode.Space.Value) --> 32
In any case: for UserInputService, pressing the 1 key already fires with Enum.KeyCode.One supplied as the KeyCode. Not sure of the specific use case but there isn’t really any other way out other than a dictionary, hacky or not.
Thanks for the correction. I’m still trying to figure out some of the lesser known ways to mess with keycodes.
going off of this, enum.keycode.one has a value of 49 so to use the number keys you could do enum.keycode.value - 48 and that will be 1-9, im only a few years late but should answer anyone elses question