// Creates new type of (keyboard or gamepad) public InputMapping CreateInputType(InputDevice type, int plyrNum) { switch (type) { case InputDevice.KEYBOARD: KeyboardMapping kybrd = InputMappingAssetCreator.CreateKeyboardMappingAsset(definedPath, "KeyboardMapping " + plyrNum); kybrd.type = InputDevice.KEYBOARD; kybrd.plyrID = (PlayerID)(plyrNum); InitializeKeyboardSetup(ref kybrd); return(kybrd); break; case InputDevice.GAMEPAD: GamepadMapping gmpd = InputMappingAssetCreator.CreateGamepadMappingAsset(definedPath, "GamepadMapping " + plyrNum); gmpd.type = InputDevice.GAMEPAD; gmpd.plyrID = (PlayerID)(plyrNum); InitializeGamepadSetup(ref gmpd); return(gmpd); break; } return(null); }
public void DisplayMapping(int plyrNum) { // Depending on input type, method of display is decided switch (cachedInputBuilder.playerInputMappings[plyrNum].type) { case InputDevice.KEYBOARD: KeyboardMapping k = cachedInputBuilder.playerInputMappings[plyrNum] as KeyboardMapping; KeyboardDisplaySetup(ref k, plyrNum, "Keyboard"); break; case InputDevice.GAMEPAD: GamepadMapping p = cachedInputBuilder.playerInputMappings[plyrNum] as GamepadMapping; GamepadDisplaySetup(ref p, plyrNum, "Gamepad"); break; } }
private void KeyboardDisplaySetup(ref KeyboardMapping kd, int plyrNum, string name) { nAnim[plyrNum, 1].target = EditorGUILayout.Foldout(nAnim[plyrNum, 1].target, name); if (EditorGUILayout.BeginFadeGroup(nAnim[plyrNum, 1].faded)) { EditorGUI.indentLevel++; // Button nAnim[plyrNum, 2].target = EditorGUILayout.Foldout(nAnim[plyrNum, 2].target, "Buttons"); KeyboardButtonList <AbstractButtonInput>(nAnim[plyrNum, 2], ref kd); // Axis nAnim[plyrNum, 3].target = EditorGUILayout.Foldout(nAnim[plyrNum, 3].target, "Axis -/+"); KeyboardAxisList <AbstractAxisInput>(nAnim[plyrNum, 3], ref kd); EditorGUI.indentLevel--; } EditorGUILayout.EndFadeGroup(); }
public InputForm GetInputState(KeyboardMapping plyrKybrdSttngs) { InputForm rtnForm = new InputForm(); KeyCode[] kyCodes = plyrKybrdSttngs.m_keyCodes; // Get buttons for (int i = 0; i < kyCodes.Length; i++) { if (GetButtonStates(kyCodes[i])) { rtnForm.m_button |= (GenericButtonID)((int)1 << i); } } rtnForm.m_axis = new float[plyrKybrdSttngs.m_keyToAxis.Length]; // Get axis for (int j = 0; j < plyrKybrdSttngs.m_keyToAxis.Length; j++) { rtnForm.m_axis[j] = GetAxisStates(plyrKybrdSttngs.m_keyToAxis[j]); } return rtnForm; }
// T is the genericType private static void KeyboardButtonList <T>(AnimBool anim, ref KeyboardMapping k) where T : struct, IConvertible { if (EditorGUILayout.BeginFadeGroup(anim.faded)) { int i = 0; foreach (string t in Enum.GetNames(typeof(T))) { if (t == "NONE") { continue; // Doesn't show the NONE enum } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(t + ":", GUILayout.Width(100)); // Button Label k.m_keyCodes[i] = (KeyCode)EditorGUILayout.EnumPopup(k.m_keyCodes[i]); i += 1; EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndFadeGroup(); }
public InputForm GetInputState(KeyboardMapping plyrKybrdSttngs) { InputForm rtnForm = new InputForm(); KeyCode[] kyCodes = plyrKybrdSttngs.m_keyCodes; // Get buttons for (int i = 0; i < kyCodes.Length; i++) { if (GetButtonStates(kyCodes[i])) { rtnForm.m_button |= (GenericButtonID)((int)1 << i); } } rtnForm.m_axis = new float[plyrKybrdSttngs.m_keyToAxis.Length]; // Get axis for (int j = 0; j < plyrKybrdSttngs.m_keyToAxis.Length; j++) { rtnForm.m_axis[j] = GetAxisStates(plyrKybrdSttngs.m_keyToAxis[j]); } return(rtnForm); }
private void InitializeKeyboardSetup(ref KeyboardMapping plyrKybrdSetup) { plyrKybrdSetup.m_keyCodes = new KeyCode[Enum.GetNames(typeof(AbstractButtonInput)).Length]; plyrKybrdSetup.m_keyToAxis = new AxisMapping[Enum.GetNames(typeof(AbstractAxisInput)).Length]; }