using UnityEngine; public static class InputManager { static KeyCode walkForward = KeyCode.W; static KeyCode walkLeft = KeyCode.A; static KeyCode walkRight = KeyCode.D; static KeyCode walkBackward = KeyCode.S; static KeyCode sprint = KeyCode.LeftShift; static KeyCode interactionKey = KeyCode.E; static KeyCode enableBarrierKey = KeyCode.F; static KeyCode openEscapeMenu = KeyCode.Escape; static KeyCode[] defaultKeys = new KeyCode[] { KeyCode.W, KeyCode.A, KeyCode.D, KeyCode.S, KeyCode.LeftShift, KeyCode.E, KeyCode.F, KeyCode.Escape }; public static void SetupKeys() { if (!PlayerPrefs.HasKey("walkF")) PlayerPrefs.SetString("walkF", "W"); if (!PlayerPrefs.HasKey("walkB")) PlayerPrefs.SetString("walkB", "S"); if (!PlayerPrefs.HasKey("walkL")) PlayerPrefs.SetString("walkL", "A"); if (!PlayerPrefs.HasKey("walkR")) PlayerPrefs.SetString("walkR", "D"); if (!PlayerPrefs.HasKey("sprint")) PlayerPrefs.SetString("sprint", "LeftShift"); if (!PlayerPrefs.HasKey("interact")) PlayerPrefs.SetString("interact", "E"); if (!PlayerPrefs.HasKey("barrier")) PlayerPrefs.SetString("barrier", "F"); if (!PlayerPrefs.HasKey("escapeMenu")) PlayerPrefs.SetString("escapeMenu", "Escape"); walkForward = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("walkF")); walkLeft = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("walkL")); walkRight = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("walkR")); walkBackward = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("walkB")); sprint = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("sprint")); interactionKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("interact")); enableBarrierKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("barrier")); openEscapeMenu = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("escapeMenu")); } public static void SetInput(int keyID, KeyCode key) { switch (keyID) { case 0: walkForward = key; PlayerPrefs.SetString("walkF", key.ToString()); break; case 1: walkLeft = key; PlayerPrefs.SetString("walkL", key.ToString()); break; case 2: walkRight = key; PlayerPrefs.SetString("walkR", key.ToString()); break; case 3: walkBackward = key; PlayerPrefs.SetString("walkB", key.ToString()); break; case 4: sprint = key; PlayerPrefs.SetString("sprint", key.ToString()); break; case 5: interactionKey = key; PlayerPrefs.SetString("interact", key.ToString()); break; case 6: enableBarrierKey = key; PlayerPrefs.SetString("barrier", key.ToString()); break; case 7: openEscapeMenu = key; PlayerPrefs.SetString("escapeMenu", key.ToString()); break; } } public static KeyCode GetInputKey(int keyID) { switch (keyID) { default: return KeyCode.None; case 0: return walkForward; case 1: return walkLeft; case 2: return walkRight; case 3: return walkBackward; case 4: return sprint; case 5: return interactionKey; case 6: return enableBarrierKey; case 7: return openEscapeMenu; } } public static KeyCode GetKeyDefault(int keyID) { switch (keyID) { default: return KeyCode.None; case 0: return defaultKeys[0]; case 1: return defaultKeys[1]; case 2: return defaultKeys[2]; case 3: return defaultKeys[3]; case 4: return defaultKeys[4]; case 5: return defaultKeys[5]; case 6: return defaultKeys[6]; case 7: return defaultKeys[7]; } } public static void SetAllKeysToDefault() { walkForward = defaultKeys[0]; walkLeft = defaultKeys[1]; walkRight = defaultKeys[2]; walkBackward = defaultKeys[3]; sprint = defaultKeys[4]; interactionKey = defaultKeys[5]; enableBarrierKey = defaultKeys[6]; openEscapeMenu = defaultKeys[7]; PlayerPrefs.SetString("walkF", "W"); PlayerPrefs.SetString("walkB", "S"); PlayerPrefs.SetString("walkL", "A"); PlayerPrefs.SetString("walkR", "D"); PlayerPrefs.SetString("sprint", "LeftShift"); PlayerPrefs.SetString("interact", "E"); PlayerPrefs.SetString("barrier", "F"); PlayerPrefs.SetString("escapeMenu", "Escape"); } }