示例#1
0
 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);
 }
示例#2
0
        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);
        }