private int[] GetLayoutIndex(E_JoystickType eJoystickType) { if (eJoystickType == E_JoystickType.XBOX) { return(XBOX_LAYOUT_INDEX); } else if (eJoystickType == E_JoystickType.ONLIVE) { return(ONLIVE_LAYOUT_INDEX); } else if (eJoystickType == E_JoystickType.BROADCOM) { return(BROADCOM_LAYOUT_INDEX); } else if (eJoystickType == E_JoystickType.GV155) { return(GV_LAYOUT_INDEX); } else if (eJoystickType == E_JoystickType.GV156) { return(GV_LAYOUT_INDEX); } return(null); }
public void SetJoystickType(string joystickName) { E_JoystickType eJoystickType = GetJoystickType(joystickName); int[] layoutIndex = GetLayoutIndex(eJoystickType); if (layoutIndex == null) { Debug.LogWarning(eJoystickType + " is not supported properly"); layoutIndex = USB_LAYOUT_INDEX; } Debug.Log(eJoystickType); leftAnalogX = GetAxisName(controllerIndex, layoutIndex[AXIS_LEFT_ANALOG_X]); leftAnalogY = GetAxisName(controllerIndex, layoutIndex[AXIS_LEFT_ANALOG_Y]); rightAnalogX = GetAxisName(controllerIndex, layoutIndex[AXIS_RIGHT_ANALOG_X]); rightAnalogY = GetAxisName(controllerIndex, layoutIndex[AXIS_RIGHT_ANALOG_Y]); // Fire1 : Block // Fire2 : Heavy // Fire3 : Light //AddButtonInput(controllerIndex, layoutIndex[BUTTON_A], ePlayerButtonEnum.Jump); //AddButtonInput(controllerIndex, layoutIndex[BUTTON_B], ePlayerButtonEnum.Fire1); //AddButtonInput(controllerIndex, layoutIndex[BUTTON_X], ePlayerButtonEnum.Fire3); //AddButtonInput(controllerIndex, layoutIndex[BUTTON_Y], ePlayerButtonEnum.Fire2); AddButtonInput(controllerIndex, layoutIndex[BUTTON_A], ePlayerButtonEnum.CHAIN1); AddButtonInput(controllerIndex, layoutIndex[BUTTON_B], ePlayerButtonEnum.CHAIN2); AddButtonInput(controllerIndex, layoutIndex[BUTTON_X], ePlayerButtonEnum.FIRE3); AddButtonInput(controllerIndex, layoutIndex[BUTTON_Y], ePlayerButtonEnum.CHAIN3); //AddAxisButtonInput(controllerIndex, layoutIndex[AXIS_LEFT_TRIGGER], ePlayerButtonEnum.Ability1, ePlayerButtonEnum.Ability1); //AddAxisButtonInput(controllerIndex, layoutIndex[AXIS_RIGHT_TRIGGER], ePlayerButtonEnum.Ability4, ePlayerButtonEnum.Ability4); //AddButtonInput(controllerIndex, layoutIndex[BUTTON_LEFT_BUMPER], ePlayerButtonEnum.Ability2); //AddButtonInput(controllerIndex, layoutIndex[BUTTON_RIGHT_BUMPER], ePlayerButtonEnum.Ability3); if (eJoystickType == E_JoystickType.GV155 || eJoystickType == E_JoystickType.GV156) { AddButtonInput(controllerIndex, layoutIndex[AXIS_DPAD_LEFT], ePlayerButtonEnum.Left); AddButtonInput(controllerIndex, layoutIndex[AXIS_DPAD_RIGHT], ePlayerButtonEnum.Right); AddButtonInput(controllerIndex, layoutIndex[AXIS_DPAD_UP], ePlayerButtonEnum.Up); AddButtonInput(controllerIndex, layoutIndex[AXIS_DPAD_DOWN], ePlayerButtonEnum.Down); AddButtonInput(controllerIndex, layoutIndex[BUTTON_TL], ePlayerButtonEnum.ABILITY1); AddButtonInput(controllerIndex, layoutIndex[BUTTON_DL], ePlayerButtonEnum.ABILITY1); // 아래 두 줄이 R1, R2를 활성화 시키는 게 아니라 L2, R2를 활성화 시킴. 디버깅은 해보지 않음. AddButtonInput(controllerIndex, layoutIndex[BUTTON_TR], ePlayerButtonEnum.ABILITY1); AddButtonInput(controllerIndex, layoutIndex[BUTTON_DR], ePlayerButtonEnum.ABILITY1); } else { AddButtonInput(controllerIndex, layoutIndex[BUTTON_TL], ePlayerButtonEnum.Item1); AddButtonInput(controllerIndex, layoutIndex[BUTTON_DL], ePlayerButtonEnum.Item2); AddButtonInput(controllerIndex, layoutIndex[BUTTON_TR], ePlayerButtonEnum.Item3); AddButtonInput(controllerIndex, layoutIndex[BUTTON_DR], ePlayerButtonEnum.Item4); AddAxisButtonInput(controllerIndex, layoutIndex[AXIS_DPAD_X], ePlayerButtonEnum.Item1, ePlayerButtonEnum.Item4); AddAxisButtonInput(controllerIndex, layoutIndex[AXIS_DPAD_Y], ePlayerButtonEnum.Item3, ePlayerButtonEnum.Item2); } // map "Pause" to Start button AddButtonInput(controllerIndex, layoutIndex[BUTTON_START], ePlayerButtonEnum.Pause); AddButtonInput(controllerIndex, layoutIndex[BUTTON_SELECT], ePlayerButtonEnum.Skip); // START // AddButtonInput(player, PlayerButtonEnum.Pause, KeyCode.JoystickButton5); }