예제 #1
0
    public static string ToString(KeyCode kcode)
    {
        KeyCodeType type = DetermineType(kcode);

        switch (type)
        {
        case KeyCodeType.KEYBOARD:
            return(KeyboardKeyToString(kcode));

        case KeyCodeType.NUMBERKEY:
            return(kcode.ToString().Remove(0, "Alpha".Length));

        case KeyCodeType.NUMPAD:
            return("Num" + NumpadKeyToString(kcode));

        case KeyCodeType.MOUSE:
            return(MouseButtonToString(kcode));

        case KeyCodeType.CONTROLLER:
            return(ControllerButtonToString(kcode));

        default:
            return(kcode.ToString());
        }
    }
        public VirtualKey(String keyName, Rectangle bounds, int[] keyCodes, KeyCodeType type)
        {
            InitializeComponent();
            EventsInit();

            this.Bounds  = bounds;
            this.KeyName = keyName;

            switch (type)
            {
            case KeyCodeType.Common:
            {
                foreach (var keyCode in keyCodes)
                {
                    this.DdKeyCodes.Add(dc.Todc(keyCode));
                }

                break;
            }

            case KeyCodeType.Dd:
            {
                foreach (var keyCode in keyCodes)
                {
                    this.DdKeyCodes.Add(keyCode);
                }

                break;
            }
            }
        }
예제 #3
0
        /// <summary>
        /// Returns if any key of a specific type is pressed.
        /// This can be sort of slow if testing anything other than 'All'/'None' since it must loop all keys.
        /// </summary>
        /// <param name="etp"></param>
        /// <returns></returns>
        public static bool GetAnyKey(KeyCodeType etp)
        {
            if (!Input.anyKey)
            {
                return(false);
            }

            const int MOUSE_LOW  = (int)KeyCode.Mouse0;
            const int MOUSE_HIGH = (int)KeyCode.Mouse6;
            const int JOY_LOW    = (int)KeyCode.JoystickButton0;
            const int JOY_HIGH   = (int)KeyCode.JoystickButton19;

            switch ((int)etp & 7)
            {
            case 0:
                return(false);

            case 1:     //keyboard only
            {
                if (_allKeyCodes == null)
                {
                    _allKeyCodes = System.Enum.GetValues(typeof(UnityEngine.KeyCode)) as UnityEngine.KeyCode[];
                }

                for (int i = 0; i < _allKeyCodes.Length; i++)
                {
                    if ((int)_allKeyCodes[i] >= MOUSE_LOW)
                    {
                        break;
                    }

                    if (Input.GetKey(_allKeyCodes[i]))
                    {
                        return(true);
                    }
                }

                return(false);
            }

            case 2:     //mouse only
            {
                for (int i = MOUSE_LOW; i <= MOUSE_HIGH; i++)
                {
                    if (Input.GetKey((KeyCode)i))
                    {
                        return(true);
                    }
                }

                return(false);
            }

            case 3:     // k/m
            {
                if (_allKeyCodes == null)
                {
                    _allKeyCodes = System.Enum.GetValues(typeof(UnityEngine.KeyCode)) as UnityEngine.KeyCode[];
                }

                for (int i = 0; i < _allKeyCodes.Length; i++)
                {
                    if ((int)_allKeyCodes[i] > MOUSE_HIGH)
                    {
                        break;
                    }

                    if (Input.GetKey(_allKeyCodes[i]))
                    {
                        return(true);
                    }
                }

                return(false);
            }

            case 4:     //joystick only
            {
                for (int i = JOY_LOW; i <= JOY_HIGH; i++)
                {
                    if (Input.GetKey((KeyCode)i))
                    {
                        return(true);
                    }
                }

                return(false);
            }

            case 5:     //keyboard & joystick
            {
                if (_allKeyCodes == null)
                {
                    _allKeyCodes = System.Enum.GetValues(typeof(UnityEngine.KeyCode)) as UnityEngine.KeyCode[];
                }

                for (int i = 0; i < _allKeyCodes.Length; i++)
                {
                    if ((int)_allKeyCodes[i] >= MOUSE_LOW || (int)_allKeyCodes[i] <= MOUSE_HIGH)
                    {
                        continue;
                    }

                    if (Input.GetKey(_allKeyCodes[i]))
                    {
                        return(true);
                    }
                }

                return(false);
            }

            case 6:     //joystick & mouse
            {
                for (int i = MOUSE_LOW; i <= MOUSE_HIGH; i++)
                {
                    if (Input.GetKey((KeyCode)i))
                    {
                        return(true);
                    }
                }

                for (int i = JOY_LOW; i <= JOY_HIGH; i++)
                {
                    if (Input.GetKey((KeyCode)i))
                    {
                        return(true);
                    }
                }

                return(false);
            }

            default:
                return(Input.anyKey);
            }
        }