Exemple #1
0
        /// <summary>
        /// Get the joystick buffer.
        /// </summary>
        /// <returns></returns>
        public static bool GetJoystickButton(int joystickIndex, JCS_JoystickButton btn, bool ignorePause = false)
        {
            // check if any joystick connected.
            if (!IsJoystickConnected())
            {
                return(false);
            }

            return(GetAxis(joystickIndex, btn, ignorePause) > 0);
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="btn"></param>
        /// <returns></returns>
        public static float GetAxis(int joystickIndex, JCS_JoystickButton btn, bool ignorePause = false)
        {
            if (btn == JCS_JoystickButton.NONE)
            {
                return(0);
            }

            string idString = JCS_InputSettings.GetJoystickButtonIdName(joystickIndex, btn);

            return(GetAxis(idString, ignorePause));
        }
Exemple #3
0
        /// <summary>
        /// Check if joystick id, pressed the key?
        /// </summary>
        /// <param name="joystickIndex"> id. </param>
        /// <param name="btn"> target button. </param>
        /// <returns>
        /// true: did pressed.
        /// false: not pressed.
        /// </returns>
        public static bool GetJoystickKey(int joystickIndex, JCS_JoystickButton btn, bool ignorePause = false)
        {
            if (!ignorePause)
            {
                if (JCS_GameManager.instance.GAME_PAUSE)
                {
                    return(false);
                }
            }

            return(GetJoystickButton(joystickIndex, btn, ignorePause));
        }
        /// <summary>
        /// Get the joystick button name by joystick button label.
        /// </summary>
        /// <param name="label"> joystick button label </param>
        /// <returns> name of the joystick button. </returns>
        public static string GetJoystickButtonName(JCS_JoystickButton label)
        {
            switch (label)
            {
            case JCS_JoystickButton.NONE: return("");

            case JCS_JoystickButton.HOME_BUTTON: return(HOME_BUTTON);

            case JCS_JoystickButton.START_BUTTON: return(JOYSTICK_BUTTON_START);

            case JCS_JoystickButton.BACK_BUTTON: return(JOYSTICK_BUTTON_BACK);

            case JCS_JoystickButton.BUTTON_A: return(JOYSTICK_BUTTON_A);

            case JCS_JoystickButton.BUTTON_B: return(JOYSTICK_BUTTON_B);

            case JCS_JoystickButton.BUTTON_X: return(JOYSTICK_BUTTON_X);

            case JCS_JoystickButton.BUTTON_Y: return(JOYSTICK_BUTTON_Y);

            case JCS_JoystickButton.LEFT_TRIGGER: return(JOYSTICK_BUTTON_LT);

            case JCS_JoystickButton.RIGHT_TRIGGER: return(JOYSTICK_BUTTON_RT);

            case JCS_JoystickButton.LEFT_BUMPER: return(JOYSTICK_BUTTON_LB);

            case JCS_JoystickButton.RIGHT_BUMPER: return(JOYSTICK_BUTTON_RB);

            case JCS_JoystickButton.BUTTON_UP: return(JOYSTICK_BUTTON_UP);

            case JCS_JoystickButton.BUTTON_DOWN: return(JOYSTICK_BUTTON_DOWN);

            case JCS_JoystickButton.BUTTON_LEFT: return(JOYSTICK_BUTTON_LEFT);

            case JCS_JoystickButton.BUTTON_RIGHT: return(JOYSTICK_BUTTON_RIGHT);

            case JCS_JoystickButton.STICK_RIGHT_X: return(STICK_RIGHT_X);

            case JCS_JoystickButton.STICK_RIGHT_Y: return(STICK_RIGHT_Y);

            case JCS_JoystickButton.STICK_LEFT_X: return(STICK_LEFT_X);

            case JCS_JoystickButton.STICK_LEFT_Y: return(STICK_LEFT_Y);
            }


            // this should not happens.
            JCS_Debug.LogWarning(@"Try to get the name with unknown joystick 
button is not allow...");
            return("");
        }
Exemple #5
0
        /// <summary>
        /// Check if joystick id, down the key?
        /// </summary>
        /// <param name="joystickIndex"> id. </param>
        /// <param name="btn"> target button. </param>
        /// <returns>
        /// true: did uo.
        /// false: not up.
        /// </returns>
        public static bool GetJoystickKeyDown(JCS_JoystickIndex joystickIndex, JCS_JoystickButton btn, bool ignorePause = false)
        {
            if (!ignorePause)
            {
                if (JCS_GameManager.instance.GAME_PAUSE)
                {
                    return(false);
                }
            }

            string idString = JCS_InputSettings.GetJoystickButtonIdName(joystickIndex, btn);

            if (GetJoystickKey(joystickIndex, btn, ignorePause))
            {
                if (!mJoystickKeyPressed.ContainsKey(idString))
                {
                    mJoystickKeyPressed.Add(idString, false);
                    return(true);
                }
                // Key contains!
                else
                {
                    if (mJoystickKeyPressed[idString])
                    {
                        return(false);
                    }
                    else
                    {
                        if (!mJoystickKeyWasPreseed.Contains(idString))
                        {
                            mJoystickKeyWasPreseed.Add(idString);
                        }
                        return(true);
                    }
                }
            }
            else
            {
                if (mJoystickKeyPressed.ContainsKey(idString))
                {
                    mJoystickKeyPressed[idString] = false;
                }
            }

            return(false);
        }
        /// <summary>
        /// Check if any specific button's buffer need to be invert.
        /// </summary>
        /// <param name="label"></param>
        /// <returns></returns>
        public static bool IsInvert(JCS_JoystickButton label)
        {
            JCSUnity_EditorWindow jcsunity_ew = JCSUnity_EditorWindow.instance;

            switch (jcsunity_ew.SelectGamepadType)
            {
            case 0:      /* ==> Select Platform <== */
                return(false);

            /* Sony Play Station */
            case 1:      /* ==> PS <== */
            case 2:      /* ==> PS2 <== */
            case 3:      /* ==> PS3 <== */
            case 4:      /* ==> PS4 <== */
            {
                switch (label)
                {
                case JCS_JoystickButton.BUTTON_LEFT:
                case JCS_JoystickButton.BUTTON_DOWN:
                    return(true);
                }
            }
            break;

            /* Microsoft XBox */
            case 5:      /* ==> XBox <== */
            case 6:      /* ==> XBox 360 <== */
            case 7:      /* ==> XBox One <== */
            {
                switch (label)
                {
                case JCS_JoystickButton.BUTTON_LEFT:
                case JCS_JoystickButton.BUTTON_DOWN:
                case JCS_JoystickButton.LEFT_TRIGGER:
                    return(true);
                }
            }
            break;
            }

            return(false);
        }
Exemple #7
0
        public static bool GetJoystickKeyByAction(
            JCS_KeyActionType act,
            JCS_JoystickIndex id,
            JCS_JoystickButton key,
            bool ignorePause = false)
        {
            switch (act)
            {
            case JCS_KeyActionType.KEY:
                return(GetJoystickKey(id, key, ignorePause));

            case JCS_KeyActionType.KEY_DOWN:
                return(GetJoystickKeyDown(id, key, ignorePause));

            case JCS_KeyActionType.KEY_UP:
                return(GetJoystickKeyUp(id, key, ignorePause));
            }

            JCS_Debug.LogError("This cannot happed.");
            return(false);
        }
        /// <summary>
        /// Check if any specific button's buffer need to be invert.
        /// </summary>
        /// <param name="label"></param>
        /// <returns></returns>
        public static bool IsInvert(JCS_JoystickButton label)
        {
            switch (JCS_InputController.SelectGamepadType)
            {
            case 0:      /* ==> Select Platform <== */
                return(false);

            /* Sony Play Station */
            case 1:      /* ==> PS <== */
            case 2:      /* ==> PS2 <== */
            case 3:      /* ==> PS3 <== */
            case 4:      /* ==> PS4 <== */
            {
                switch (label)
                {
                case JCS_JoystickButton.BUTTON_LEFT:
                case JCS_JoystickButton.BUTTON_DOWN:
                    return(true);
                }
            }
            break;

            /* Microsoft XBox */
            case 5:      /* ==> XBox <== */
            case 6:      /* ==> XBox 360 <== */
            case 7:      /* ==> XBox One <== */
            {
                switch (label)
                {
                case JCS_JoystickButton.BUTTON_LEFT:
                case JCS_JoystickButton.BUTTON_DOWN:
                case JCS_JoystickButton.LEFT_TRIGGER:
                    return(true);
                }
            }
            break;
            }

            return(false);
        }
        /// <summary>
        /// Is the button label a axis joystick value?
        /// </summary>
        /// <param name="label"></param>
        /// <returns></returns>
        public static bool IsAxisJoystickButton(JCS_JoystickButton label)
        {
            switch (label)
            {
            case JCS_JoystickButton.BUTTON_UP:
            case JCS_JoystickButton.BUTTON_DOWN:
            case JCS_JoystickButton.BUTTON_LEFT:
            case JCS_JoystickButton.BUTTON_RIGHT:

            case JCS_JoystickButton.STICK_LEFT_X:
            case JCS_JoystickButton.STICK_LEFT_Y:

            case JCS_JoystickButton.STICK_RIGHT_X:
            case JCS_JoystickButton.STICK_RIGHT_Y:

            case JCS_JoystickButton.LEFT_TRIGGER:
            case JCS_JoystickButton.RIGHT_TRIGGER:
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Get Unity's controller naming convention. (PS4)
        /// </summary>
        /// <param name="label"> label we target to get the naming. </param>
        /// <returns> Naming convention by Unity's InputManager, for getting
        /// the right device driver id. </returns>
        private static string GetPositiveNameByLabel_PS4(JCS_JoystickButton label)
        {
            switch (label)
            {
            /* PS4 => Circle */
            case JCS_JoystickButton.BUTTON_A: return("joystick button 2");

            /* PS4 => Square */
            case JCS_JoystickButton.BUTTON_B: return("joystick button 0");

            case JCS_JoystickButton.BUTTON_X: return("joystick button 1");

            /* PS4 => Triangle */
            case JCS_JoystickButton.BUTTON_Y: return("joystick button 3");

            /* PS4 => PS*/
            case JCS_JoystickButton.HOME_BUTTON: return("joystick button 12");

            /* PS4 => Options */
            case JCS_JoystickButton.START_BUTTON: return("joystick button 9");

            /* PS4 => Share */
            case JCS_JoystickButton.BACK_BUTTON: return("joystick button 8");

            /* PS4 => R1 */
            case JCS_JoystickButton.RIGHT_BUMPER: return("joystick button 5");

            /* PS4 => L1 */
            case JCS_JoystickButton.LEFT_BUMPER: return("joystick button 4");

            /* PS4 => R2 */
            case JCS_JoystickButton.RIGHT_TRIGGER: return("joystick button 7");

            /* PS4 => L2 */
            case JCS_JoystickButton.LEFT_TRIGGER: return("joystick button 6");
            }

            return("");
        }
        /// <summary>
        /// Get the axis type depends on the joystick button label.
        /// </summary>
        /// <param name="label"></param>
        /// <returns></returns>
        public static JCS_AxisType GetAxisType(JCS_JoystickButton label)
        {
            switch (JCS_InputController.SelectGamepadType)
            {
            case 0:      /* ==> Select Platform <== */
                break;

            /* Sony Play Station */
            case 1:      /* ==> PS <== */
            case 2:      /* ==> PS2 <== */
            case 3:      /* ==> PS3 <== */
            case 4:      /* ==> PS4 <== */
            {
                switch (label)
                {
                case JCS_JoystickButton.BUTTON_A:
                case JCS_JoystickButton.BUTTON_B:
                case JCS_JoystickButton.BUTTON_X:
                case JCS_JoystickButton.BUTTON_Y:

                case JCS_JoystickButton.HOME_BUTTON:

                case JCS_JoystickButton.START_BUTTON:
                case JCS_JoystickButton.BACK_BUTTON:

                case JCS_JoystickButton.LEFT_BUMPER:
                case JCS_JoystickButton.RIGHT_BUMPER:
                {
                    return(JCS_AxisType.KeyOrMouseButton);
                }

                case JCS_JoystickButton.BUTTON_UP:
                case JCS_JoystickButton.BUTTON_DOWN:
                case JCS_JoystickButton.BUTTON_LEFT:
                case JCS_JoystickButton.BUTTON_RIGHT:
                {
                    return(JCS_AxisType.JoystickAxis);
                }

                case JCS_JoystickButton.STICK_LEFT_X:
                case JCS_JoystickButton.STICK_LEFT_Y:

                case JCS_JoystickButton.STICK_RIGHT_X:
                case JCS_JoystickButton.STICK_RIGHT_Y:
                {
                    return(JCS_AxisType.JoystickAxis);
                }

                case JCS_JoystickButton.LEFT_TRIGGER:
                case JCS_JoystickButton.RIGHT_TRIGGER:
                {
                    return(JCS_AxisType.KeyOrMouseButton);
                }
                }
            }
            break;

            /* Microsoft XBox */
            case 5:      /* ==> XBox <== */
            case 6:      /* ==> XBox 360 <== */
            case 7:      /* ==> XBox One <== */
            {
                switch (label)
                {
                case JCS_JoystickButton.BUTTON_A:
                case JCS_JoystickButton.BUTTON_B:
                case JCS_JoystickButton.BUTTON_X:
                case JCS_JoystickButton.BUTTON_Y:

                case JCS_JoystickButton.HOME_BUTTON:

                case JCS_JoystickButton.START_BUTTON:
                case JCS_JoystickButton.BACK_BUTTON:

                case JCS_JoystickButton.LEFT_BUMPER:
                case JCS_JoystickButton.RIGHT_BUMPER:
                {
                    return(JCS_AxisType.KeyOrMouseButton);
                }

                case JCS_JoystickButton.BUTTON_UP:
                case JCS_JoystickButton.BUTTON_DOWN:
                case JCS_JoystickButton.BUTTON_LEFT:
                case JCS_JoystickButton.BUTTON_RIGHT:

                case JCS_JoystickButton.STICK_LEFT_X:
                case JCS_JoystickButton.STICK_LEFT_Y:

                case JCS_JoystickButton.STICK_RIGHT_X:
                case JCS_JoystickButton.STICK_RIGHT_Y:

                case JCS_JoystickButton.LEFT_TRIGGER:
                case JCS_JoystickButton.RIGHT_TRIGGER:
                {
                    return(JCS_AxisType.JoystickAxis);
                }
                }
            }
            break;
            }



            /* Returns default. */
            return(JCS_AxisType.KeyOrMouseButton);
        }
        /// <summary>
        /// Get axis channel for Unity's built-in InputManager.
        /// </summary>
        /// <param name="label"></param>
        /// <returns></returns>
        public static JCS_AxisChannel GetAxisChannel(JCS_JoystickButton label)
        {
            switch (JCS_InputController.SelectGamepadType)
            {
            case 0:      /* ==> Select Platform <== */
                break;

            /* Sony Play Station */
            case 1:      /* ==> PS <== */
            case 2:      /* ==> PS2 <== */
            case 3:      /* ==> PS3 <== */
            case 4:      /* ==> PS4 <== */
            {
                switch (label)
                {
                case JCS_JoystickButton.BUTTON_UP:
                case JCS_JoystickButton.BUTTON_DOWN:
                    return(JCS_AxisChannel.CHANNEL_08);

                case JCS_JoystickButton.BUTTON_RIGHT:
                case JCS_JoystickButton.BUTTON_LEFT:
                    return(JCS_AxisChannel.CHANNEL_07);

                case JCS_JoystickButton.STICK_LEFT_X:
                    return(JCS_AxisChannel.X_Axis);

                case JCS_JoystickButton.STICK_LEFT_Y:
                    return(JCS_AxisChannel.Y_Axis);

                case JCS_JoystickButton.STICK_RIGHT_X:
                    return(JCS_AxisChannel.CHANNEL_03);

                case JCS_JoystickButton.STICK_RIGHT_Y:
                    return(JCS_AxisChannel.CHANNEL_06);

                case JCS_JoystickButton.LEFT_TRIGGER:              // this need to be invert.
                case JCS_JoystickButton.RIGHT_TRIGGER:
                    return(JCS_AxisChannel.CHANNEL_03);
                }
            }
            break;

            /* Microsoft XBox */
            case 5:      /* ==> XBox <== */
            case 6:      /* ==> XBox 360 <== */
            case 7:      /* ==> XBox One <== */
            {
                switch (label)
                {
                case JCS_JoystickButton.BUTTON_UP:
                case JCS_JoystickButton.BUTTON_DOWN:
                    return(JCS_AxisChannel.CHANNEL_07);

                case JCS_JoystickButton.BUTTON_RIGHT:
                case JCS_JoystickButton.BUTTON_LEFT:
                    return(JCS_AxisChannel.CHANNEL_06);

                case JCS_JoystickButton.STICK_LEFT_X:
                    return(JCS_AxisChannel.X_Axis);

                case JCS_JoystickButton.STICK_LEFT_Y:
                    return(JCS_AxisChannel.Y_Axis);

                case JCS_JoystickButton.STICK_RIGHT_X:
                    return(JCS_AxisChannel.CHANNEL_04);

                case JCS_JoystickButton.STICK_RIGHT_Y:
                    return(JCS_AxisChannel.CHANNEL_05);

                case JCS_JoystickButton.LEFT_TRIGGER:              // this need to be invert.
                case JCS_JoystickButton.RIGHT_TRIGGER:
                    return(JCS_AxisChannel.CHANNEL_03);
                }
            }
            break;
            }

            // default.
            return(JCS_AxisChannel.X_Axis);
        }
        /// <summary>
        /// Get Unity's controller naming convention.
        /// </summary>
        /// <param name="label"> label we target to get the naming. </param>
        /// <returns> Naming convention by Unity's InputManager, for getting
        /// the right device driver id. </returns>
        public static string GetPositiveNameByLabel(JCS_JoystickButton label)
        {
#if (UNITY_EDITOR)
            if (instance == null)
            {
                switch (JCS_InputController.SelectGamepadType)
                {
                case 0:      /* ==> Select Platform <== */
                    return("");

                /* Sony Play Station */
                case 1:      /* ==> PS <== */
                    return("");

                case 2:      /* ==> PS2 <== */
                    return("");

                case 3:      /* ==> PS3 <== */
                    return("");

                case 4:      /* ==> PS4 <== */
                    return(GetPositiveNameByLabel_PS4(label));

                /* Microsoft XBox */
                case 5:      /* ==> XBox <== */
                    return("");

                case 6:      /* ==> XBox 360 <== */
                    return(GetPositiveNameByLabel_XBox360(label));

                case 7:      /* ==> XBox One <== */
                    return("");
                }
            }
            else
            {
#endif
            switch (instance.TargetGamePad)
            {
            case JCS_GamePadType.ALL:
                return("");

            /* Sony Play Station */
            case JCS_GamePadType.PS:
                return("");

            case JCS_GamePadType.PS2:
                return("");

            case JCS_GamePadType.PS3:
                return("");

            case JCS_GamePadType.PS4:
                return(GetPositiveNameByLabel_PS4(label));

            /* Microsoft XBox */
            case JCS_GamePadType.XBOX:
                return("");

            case JCS_GamePadType.XBOX_360:
                return(GetPositiveNameByLabel_XBox360(label));

            case JCS_GamePadType.XBOX_ONE:
                return("");
            }
#if (UNITY_EDITOR)
        }
#endif

            return("");
        }
 /// <summary>
 /// Get the joystick button name by joystick button label.
 /// </summary>
 /// <param name="index"> joystick id. </param>
 /// <param name="label"> joystick button label </param>
 /// <returns> name of the joystick button id. </returns>
 public static string GetJoystickButtonIdName(JCS_JoystickIndex index, JCS_JoystickButton label)
 {
     return(GetJoystickButtonName(label) + " " + (int)index);
 }
Exemple #15
0
 /// <summary>
 /// Check if joystick id, down the key?
 /// </summary>
 /// <param name="joystickIndex"> id. </param>
 /// <param name="btn"> target button. </param>
 /// <returns>
 /// true: did uo.
 /// false: not up.
 /// </returns>
 public static bool GetJoystickKeyDown(int joystickIndex, JCS_JoystickButton btn, bool ignorePause = false)
 {
     return(GetJoystickKeyDown((JCS_JoystickIndex)joystickIndex, btn, ignorePause));
 }
 /// <summary>
 /// Get the joystick button name by joystick button label.
 /// </summary>
 /// <param name="index"> joystick id. </param>
 /// <param name="label"> joystick button label </param>
 /// <returns> name of the joystick button id. </returns>
 public static string GetJoystickButtonIdName(int index, JCS_JoystickButton label)
 {
     return(GetJoystickButtonIdName((JCS_JoystickIndex)index, label));
 }
        /// <summary>
        /// Get Unity's controller naming convention. (XBox 360)
        /// </summary>
        /// <param name="label"> label we target to get the naming. </param>
        /// <returns> Naming convention by Unity's InputManager, for getting
        /// the right device driver id. </returns>
        private static string GetPositiveNameByLabel_XBox360(JCS_JoystickButton label)
        {
#if (UNITY_STANDALONE_WIN)
            switch (label)
            {
            case JCS_JoystickButton.BUTTON_A: return("joystick button 0");

            case JCS_JoystickButton.BUTTON_B: return("joystick button 1");

            case JCS_JoystickButton.BUTTON_X: return("joystick button 2");

            case JCS_JoystickButton.BUTTON_Y: return("joystick button 3");

            case JCS_JoystickButton.HOME_BUTTON: return("");

            case JCS_JoystickButton.START_BUTTON: return("joystick button 7");

            case JCS_JoystickButton.BACK_BUTTON: return("joystick button 6");

            case JCS_JoystickButton.RIGHT_BUMPER: return("joystick button 5");

            case JCS_JoystickButton.LEFT_BUMPER: return("joystick button 4");
            }
#elif (UNITY_STANDALONE_LINUX)
            switch (label)
            {
            case JCS_JoystickButton.BUTTON_A: return("joystick button 0");

            case JCS_JoystickButton.BUTTON_B: return("joystick button 1");

            case JCS_JoystickButton.BUTTON_X: return("joystick button 2");

            case JCS_JoystickButton.BUTTON_Y: return("joystick button 3");

            case JCS_JoystickButton.HOME_BUTTON: return("joystick button 15");

            case JCS_JoystickButton.START_BUTTON: return("joystick button 7");

            case JCS_JoystickButton.BACK_BUTTON: return("joystick button 6");

            case JCS_JoystickButton.RIGHT_BUMPER: return("joystick button 5");

            case JCS_JoystickButton.LEFT_BUMPER: return("joystick button 4");
            }
#elif (UNITY_STANDALONE_OSX)
            switch (label)
            {
            case JCS_JoystickButton.BUTTON_A: return("joystick button 16");

            case JCS_JoystickButton.BUTTON_B: return("joystick button 17");

            case JCS_JoystickButton.BUTTON_X: return("joystick button 18");

            case JCS_JoystickButton.BUTTON_Y: return("joystick button 19");

            case JCS_JoystickButton.HOME_BUTTON: return("joystick button 15");

            case JCS_JoystickButton.START_BUTTON: return("joystick button 9");

            case JCS_JoystickButton.BACK_BUTTON: return("joystick button 10");

            case JCS_JoystickButton.RIGHT_BUMPER: return("joystick button 14");

            case JCS_JoystickButton.LEFT_BUMPER: return("joystick button 13");
            }
#endif
            return("");
        }
Exemple #18
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="joystickIndex"></param>
 /// <param name="btn"></param>
 /// <returns></returns>
 public static float GetAxis(JCS_JoystickIndex joystickIndex, JCS_JoystickButton btn, bool ignorePause = false)
 {
     return(GetAxis((int)joystickIndex, btn, ignorePause));
 }