示例#1
0
        // 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();
        }
示例#4
0
        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();
        }
示例#6
0
        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);
        }
示例#7
0
 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];
 }
示例#8
0
 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];
 }