/// <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); }
/// <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)); }
/// <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(""); }
/// <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); }
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); }
/// <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(""); }
/// <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)); }