- Home /
How to convert raw keycode to characters
I'm creating my own input manager to allow changing control configurations in game, since there still isn't a way to alter Unity's Input Manager through script (as far as I'm aware).
I'm using PlayerPrefs to hold the keycode, and want to display the key currently assigned to an action but it displays as an int. ie, Mouse0 comes out as 323.
Is there an easy way to convert these values to something more readable to the player? I've already gathered that String.fromCharCode() is not supported.
Answer by Bunny83 · Mar 16, 2011 at 03:42 AM
Just cast it back to KeyCode. KeyCode is an enum which holds all virtual keys. ToString will return the corresponding name of that key. So you would do something like that:
// C# KeyCode forwardKey = (KeyCode)PlayerPrefs.GetInt("MySavedForwardKey",0);
// JS var forwardKey : KeyCode = PlayerPrefs.GetInt("MySavedForwardKey",0);
And now it can be used to display the key name:
GUILayout.Label("Current forward key: " + forwardKey);
Thank you! It was slightly off, but you pointed me in the proper direction. Such a simple solution, it completely evaded me.
var kCrouch : $$anonymous$$eyCode = PlayerPrefs.GetInt("Crouch") as $$anonymous$$eyCode;
returns an error:
"BCE0006: 'int' is a value type. The 'as' operator can only be used with reference types."
But, the "as $$anonymous$$eyCode" bit is unneccesary and upon removing it, works like a charm.
Well, i don't use JS in the first place and normally I don't cast with the as operator. Thank you for your reply, i will change that.
Your answer
Follow this Question
Related Questions
Store individual positions of GameObjects in a string 3 Answers
Using Player Prefs 0 Answers
If Statements with PlayerPrefs 1 Answer
Display PlayerPrefs.GetInt? 1 Answer
Create a list of all PlayPref Keys 2 Answers