private void HandleButtonEvents(OuyaSDK.OuyaPlayer p, OuyaSDK.KeyEnum b, OuyaSDK.InputAction bs)
    {
        if (enabled && NGUITools.GetActive(gameObject))
        {
            // Ignoring P to allow any player to use the menu
            if (bs.Equals(OuyaSDK.InputAction.KeyDown))
            {
                switch (b)
                {
                case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    OnKey(KeyCode.UpArrow);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                    OnKey(KeyCode.DownArrow);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    OnKey(KeyCode.LeftArrow);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                    OnKey(KeyCode.RightArrow);
                    break;
                }
            }

            if (b == activateButton && gameObject == UICamera.selectedObject)
            {
                SendMessage("OnPress", bs.Equals(OuyaSDK.InputAction.KeyDown), SendMessageOptions.DontRequireReceiver);
            }
        }
    }
示例#2
0
 //Call this event ( trigger )
 public static void buttonPressEvent(OuyaSDK.OuyaPlayer player, OuyaSDK.KeyEnum button, OuyaSDK.InputAction buttonState)
 {
     if (ButtonsEvent != null)
     {
         ButtonsEvent(player, button, buttonState);
     }
 }
    private float GetAxis(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        // Check if we want the *new* SDK input or the example common
        if (m_useSDKForInput)
        {
            // Get the Unity Axis Name for the Unity API
            string axisName = OuyaSDK.GetUnityAxisName(keyCode, player);

            // Check if the axis name is valid
            if (!string.IsNullOrEmpty(axisName))
            {
                //use the Unity API to get the axis value, raw or otherwise
                float axisValue = Input.GetAxisRaw(axisName);
                //check if the axis should be inverted
                if (OuyaSDK.GetAxisInverted(keyCode, player))
                {
                    return(-axisValue);
                }
                else
                {
                    return(axisValue);
                }
            }
        }
        // moving the common code into the sdk via above
        else
        {
            return(OuyaExampleCommon.GetAxis(keyCode, player));
        }
        return(0f);
    }
示例#4
0
 private void HandleButtonEvent(OuyaSDK.OuyaPlayer p, OuyaSDK.KeyEnum b, OuyaSDK.InputAction bs)
 {
     if (b.Equals(OuyaSDK.KeyEnum.BUTTON_O) && bs.Equals(OuyaSDK.InputAction.KeyDown))
     {
         //we cna use this if we want event-based inputs instead
     }
 }
示例#5
0
    /// <summary>
    /// Get the KeyCode to be used with the Unity API
    /// </summary>
    /// <param name="keyCode"></param>
    /// <param name="player"></param>
    /// <returns></returns>
    public static KeyCode GetUnityKeyCode(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        IOuyaController controller = GetSupportedController(player);

        if (null == controller)
        {
            return((KeyCode)(-1));
        }

        return(controller.GetUnityKeyCode(keyCode, player));
    }
 protected bool HasKeyCode(OuyaSDK.KeyEnum[] supportedCodes, OuyaSDK.KeyEnum keyCode)
 {
     foreach (OuyaSDK.KeyEnum item in supportedCodes)
     {
         if (item == keyCode)
         {
             return(true);
         }
     }
     return(false);
 }
示例#7
0
    /// <summary>
    /// Check if the axis should be inverted after accessing the Unity API
    /// </summary>
    /// <param name="keyCode"></param>
    /// <param name="player"></param>
    /// <returns></returns>
    public static bool GetAxisInverted(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        IOuyaController controller = GetSupportedController(player);

        if (null == controller)
        {
            return(false);
        }

        return(controller.GetAxisInverted(keyCode));
    }
示例#8
0
    /// <summary>
    /// Get the AxisName to be used with the Unity API
    /// </summary>
    /// <param name="keyCode"></param>
    /// <param name="player"></param>
    /// <returns></returns>
    public static string GetUnityAxisName(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        IOuyaController controller = GetSupportedController(player);

        if (null == controller)
        {
            return(string.Empty);
        }

        return(controller.GetUnityAxisName(keyCode, player));
    }
示例#9
0
    /// <summary>
    /// Check if the controller button is available
    /// </summary>
    /// <param name="keyCode"></param>
    /// <param name="player"></param>
    /// <returns></returns>
    public static bool HasButton(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        IOuyaController controller = GetSupportedController(player);

        if (null == controller)
        {
            return(false);
        }

        return(controller.HasButton(keyCode));
    }
示例#10
0
 public static bool GetButton(OuyaSDK.KeyEnum keyCode)
 {
     return(
         GetButton(keyCode, OuyaSDK.OuyaPlayer.player1) ||
         GetButton(keyCode, OuyaSDK.OuyaPlayer.player2) ||
         GetButton(keyCode, OuyaSDK.OuyaPlayer.player3) ||
         GetButton(keyCode, OuyaSDK.OuyaPlayer.player4) ||
         GetButton(keyCode, OuyaSDK.OuyaPlayer.player5) ||
         GetButton(keyCode, OuyaSDK.OuyaPlayer.player6) ||
         GetButton(keyCode, OuyaSDK.OuyaPlayer.player7) ||
         GetButton(keyCode, OuyaSDK.OuyaPlayer.player8));
 }
示例#11
0
    public string GetUnityAxisName(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
#if !UNITY_EDITOR && UNITY_ANDROID
        switch (keyCode)
        {
        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
            return(string.Format("Joy{0} Axis 1", (int)player));

        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
            return(string.Format("Joy{0} Axis 2", (int)player));

        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
            return(string.Format("Joy{0} Axis 3", (int)player));

        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
            return(string.Format("Joy{0} Axis 4", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_LT:
            return(string.Format("Joy{0} Axis 5", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_RT:
            return(string.Format("Joy{0} Axis 6", (int)player));

        default:
            return(string.Empty);
        }
#else
        switch (keyCode)
        {
        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
            return(string.Format("Joy{0} Axis 1", (int)player));

        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
            return(string.Format("Joy{0} Axis 2", (int)player));

        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
            return(string.Format("Joy{0} Axis 4", (int)player));

        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
            return(string.Format("Joy{0} Axis 5", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_LT:
            return(string.Format("Joy{0} Axis 9", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_RT:
            return(string.Format("Joy{0} Axis 10", (int)player));

        default:
            return(string.Empty);
        }
#endif
    }
示例#12
0
    public bool GetAxisInverted(OuyaSDK.KeyEnum keyCode)
    {
#if !UNITY_EDITOR && UNITY_ANDROID
        switch (keyCode)
        {
        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
            return(false);

        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
            return(false);

        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
            return(false);

        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
            return(false);

        case OuyaSDK.KeyEnum.BUTTON_LT:
            return(false);

        case OuyaSDK.KeyEnum.BUTTON_RT:
            return(false);

        default:
            return(false);
        }
#else
        switch (keyCode)
        {
        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
            return(false);

        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
            return(false);

        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
            return(false);

        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
            return(false);

        case OuyaSDK.KeyEnum.BUTTON_LT:
            return(false);

        case OuyaSDK.KeyEnum.BUTTON_RT:
            return(false);

        default:
            return(false);
        }
#endif
    }
示例#13
0
    private bool GetButton(OuyaSDK.OuyaPlayer player, OuyaSDK.KeyEnum keyCode)
    {
        switch (keyCode)
        {
        case OuyaSDK.KeyEnum.BUTTON_LB:
            return(GetButton(player, 4));

        case OuyaSDK.KeyEnum.BUTTON_RB:
            return(GetButton(player, 5));

        case OuyaSDK.KeyEnum.BUTTON_O:
            return(GetButton(player, 0));

        case OuyaSDK.KeyEnum.BUTTON_U:
            return(GetButton(player, 1));

        case OuyaSDK.KeyEnum.BUTTON_Y:
            return(GetButton(player, 2));

        case OuyaSDK.KeyEnum.BUTTON_A:
            return(GetButton(player, 3));

        case OuyaSDK.KeyEnum.BUTTON_L3:
            return(GetButton(player, 6));

        case OuyaSDK.KeyEnum.BUTTON_R3:
            return(GetButton(player, 7));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
            return(GetButton(player, 8));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
            return(GetButton(player, 9));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
            return(GetButton(player, 10));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
            return(GetButton(player, 11));

        case OuyaSDK.KeyEnum.BUTTON_LT:
            return(GetButton(player, 12));

        case OuyaSDK.KeyEnum.BUTTON_RT:
            return(GetButton(player, 13));

        default:
            return(false);
        }
    }
示例#14
0
    public KeyCode GetUnityKeyCode(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        switch (keyCode)
        {
        case OuyaSDK.KeyEnum.BUTTON_LB:
            return(CommonGetUnityKeyCode(4, player));

        case OuyaSDK.KeyEnum.BUTTON_RB:
            return(CommonGetUnityKeyCode(5, player));

        case OuyaSDK.KeyEnum.BUTTON_O:
            return(CommonGetUnityKeyCode(0, player));

        case OuyaSDK.KeyEnum.BUTTON_U:
            return(CommonGetUnityKeyCode(1, player));

        case OuyaSDK.KeyEnum.BUTTON_Y:
            return(CommonGetUnityKeyCode(2, player));

        case OuyaSDK.KeyEnum.BUTTON_A:
            return(CommonGetUnityKeyCode(3, player));

        case OuyaSDK.KeyEnum.BUTTON_L3:
            return(CommonGetUnityKeyCode(6, player));

        case OuyaSDK.KeyEnum.BUTTON_R3:
            return(CommonGetUnityKeyCode(7, player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
            return(CommonGetUnityKeyCode(8, player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
            return(CommonGetUnityKeyCode(9, player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
            return(CommonGetUnityKeyCode(10, player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
            return(CommonGetUnityKeyCode(11, player));

        case OuyaSDK.KeyEnum.BUTTON_LT:
            return(CommonGetUnityKeyCode(12, player));

        case OuyaSDK.KeyEnum.BUTTON_RT:
            return(CommonGetUnityKeyCode(13, player));

        default:
            return((KeyCode)(-1));
        }
    }
示例#15
0
    void HandleButtonEvent(OuyaSDK.OuyaPlayer p, OuyaSDK.KeyEnum b, OuyaSDK.InputAction bs)
    {
        if (!player.Equals(p))
        {
            return;
        }

        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_O) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            this.animation.Play("attack");
            Debug.Log("Button O Down Event was triggered on Player" + player);
        }

        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_O) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            Debug.Log("Button O Up Event was triggered on Player" + player);
        }

        //BATTLE STANCE:
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_Y) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            if (!isBattleStance)
            {
                //Set Battle stance.
                this.animation.Play("waitingforbattle");
                isBattleStance = true;
            }
            else
            {
                if (this.animation.IsPlaying("waitingforbattle"))
                {
                    this.animation.Play("idle");
                    isBattleStance = false;
                }
            }
        }

        //DANCE:
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_U) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            this.animation.Play("dance");
        }


        //FAKE Death:
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_A) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            this.animation.Play("die");
        }
    }
    private bool GetButton(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        // Check if we want the *new* SDK input or the example common
        if (m_useSDKForInput)
        {
            // Get the Unity KeyCode for the Unity API
            KeyCode unityKeyCode = OuyaSDK.GetUnityKeyCode(keyCode, player);

            // Check if the KeyCode is valid
            if (unityKeyCode != (KeyCode)(-1))
            {
                //use the Unity API to get the button value
                bool buttonState = Input.GetKey(unityKeyCode);
                return(buttonState);
            }
        }
        // moving the common code into the sdk via aboveUs
        else
        {
            return(OuyaExampleCommon.GetButton(keyCode, player));
        }
        return(false);
    }
示例#17
0
 public bool HasButton(OuyaSDK.KeyEnum keyCode)
 {
     OuyaSDK.KeyEnum[] buttons = GetSupportedButtons();
     return(HasKeyCode(buttons, keyCode));
 }
示例#18
0
    public KeyCode GetUnityKeyCode(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
#if !UNITY_EDITOR && UNITY_ANDROID
        switch (keyCode)
        {
        case OuyaSDK.KeyEnum.BUTTON_LB:
            return(CommonGetUnityKeyCode(6, player));

        case OuyaSDK.KeyEnum.BUTTON_RB:
            return(CommonGetUnityKeyCode(7, player));

        case OuyaSDK.KeyEnum.BUTTON_O:
            return(CommonGetUnityKeyCode(0, player));

        case OuyaSDK.KeyEnum.BUTTON_U:
            return(CommonGetUnityKeyCode(3, player));

        case OuyaSDK.KeyEnum.BUTTON_Y:
            return(CommonGetUnityKeyCode(4, player));

        case OuyaSDK.KeyEnum.BUTTON_A:
            return(CommonGetUnityKeyCode(1, player));

        case OuyaSDK.KeyEnum.BUTTON_L3:
            return(CommonGetUnityKeyCode(13, player));

        case OuyaSDK.KeyEnum.BUTTON_R3:
            return(CommonGetUnityKeyCode(14, player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
            return((KeyCode)(-1));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
            return((KeyCode)(-1));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
            return((KeyCode)(-1));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
            return((KeyCode)(-1));

        case OuyaSDK.KeyEnum.BUTTON_LT:
            return((KeyCode)(-1));

        case OuyaSDK.KeyEnum.BUTTON_RT:
            return((KeyCode)(-1));

        default:
            return((KeyCode)(-1));
        }
#else
        if (Application.platform == RuntimePlatform.OSXEditor)
        {
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(CommonGetUnityKeyCode(13, player));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(CommonGetUnityKeyCode(14, player));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(CommonGetUnityKeyCode(16, player));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(CommonGetUnityKeyCode(18, player));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(CommonGetUnityKeyCode(19, player));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(CommonGetUnityKeyCode(17, player));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(CommonGetUnityKeyCode(11, player));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(CommonGetUnityKeyCode(12, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(CommonGetUnityKeyCode(5, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(CommonGetUnityKeyCode(6, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(CommonGetUnityKeyCode(7, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(CommonGetUnityKeyCode(8, player));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return((KeyCode)(-1));

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return((KeyCode)(-1));

            default:
                return((KeyCode)(-1));
            }
        }
        else
        {
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(CommonGetUnityKeyCode(4, player));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(CommonGetUnityKeyCode(5, player));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(CommonGetUnityKeyCode(0, player));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(CommonGetUnityKeyCode(2, player));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(CommonGetUnityKeyCode(3, player));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(CommonGetUnityKeyCode(1, player));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(CommonGetUnityKeyCode(8, player));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(CommonGetUnityKeyCode(9, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return((KeyCode)(-1));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return((KeyCode)(-1));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return((KeyCode)(-1));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return((KeyCode)(-1));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return((KeyCode)(-1));

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return((KeyCode)(-1));

            default:
                return((KeyCode)(-1));
            }
        }
#endif
    }
示例#19
0
    //Handles Button Events.
    private void HandleButtonEvent(OuyaSDK.OuyaPlayer p, OuyaSDK.KeyEnum b, OuyaSDK.InputAction bs)
    {
        //Debug.Log(string.Format("Player:{0} | Button:{1} | InputAction:{2}", p, b, bs));
        m_inputAction = bs;
        m_keyEnum     = b;

        //If this event was not meant for us then do not handle it.
        if (!player.Equals(p))
        {
            return;
        }

        //NOTE: This Button event handler only handles events for Player 1, because of the above statement.

        #region BUTTONS O - A
        //Check O button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_O) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererButtonO, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_O) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererButtonO, false, true);
        }

        //Check U button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_U) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererButtonU, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_U) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererButtonU, false, true);
        }

        //Check Y button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_Y) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererButtonY, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_Y) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererButtonY, false, true);
        }

        //Check A button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_A) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererButtonA, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_A) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererButtonA, false, true);
        }

        //Check L3 button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_L3) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererAxisLeft, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_L3) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererAxisLeft, false, true);
        }

        //Check R3 button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_R3) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererAxisRight, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_R3) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererAxisRight, false, true);
        }
        #endregion

        #region Bumpers
        //Check LB button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_LB) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererLB, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_LB) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererLB, false, true);
        }

        //Check RB button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_RB) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererRB, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_RB) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererRB, false, true);
        }
        #endregion

        #region triggers
        //Check LT button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_LT) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererLT, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_LT) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererLT, false, true);
        }

        //Check RT button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_RT) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererRT, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_RT) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererRT, false, true);
        }
        #endregion

        #region DPAD
        //Check DPAD UP button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_UP) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererDpadUp, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_UP) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererDpadUp, false, true);
        }

        //Check DPAD DOWN button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererDpadDown, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererDpadDown, false, true);
        }

        //Check DPAD LEFT button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererDpadLeft, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererDpadLeft, false, true);
        }

        //Check DPAD RIGHT button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererDpadRight, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererDpadRight, false, true);
        }
        #endregion
    }
 public ButtonMap(JoystickType type, int buttonID, OuyaSDK.KeyEnum button)
 {
     this.type = type;
     this.ButtonID = buttonID;
     this.button = button;
 }
示例#21
0
    //Handles Button Events.
    private void HandleButtonEvent(OuyaSDK.OuyaPlayer p, OuyaSDK.KeyEnum b, OuyaSDK.InputAction bs)
    {
        //Debug.Log(string.Format("Player:{0} | Button:{1} | InputAction:{2}", p, b, bs));
        m_inputAction = bs;
        m_keyEnum = b;

        //If this event was not meant for us then do not handle it.
        if (!player.Equals(p)) { return; }

        //NOTE: This Button event handler only handles events for Player 1, because of the above statement.

        #region BUTTONS O - A
        //Check O button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_O) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererButtonO, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_O) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererButtonO, false, true);
        }

        //Check U button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_U) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererButtonU, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_U) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererButtonU, false, true);
        }

        //Check Y button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_Y) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererButtonY, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_Y) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererButtonY, false, true);
        }

        //Check A button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_A) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererButtonA, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_A) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererButtonA, false, true);
        }

        //Check L3 button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_L3) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererAxisLeft, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_L3) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererAxisLeft, false, true);
        }

        //Check R3 button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_R3) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererAxisRight, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_R3) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererAxisRight, false, true);
        }
        #endregion

        #region Bumpers
        //Check LB button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_LB) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererLB, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_LB) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererLB, false, true);
        }

        //Check RB button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_RB) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererRB, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_RB) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererRB, false, true);
        }
        #endregion

        #region triggers
        //Check LT button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_LT) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererLT, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_LT) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererLT, false, true);
        }

        //Check RT button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_RT) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererRT, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_RT) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererRT, false, true);
        }
        #endregion

        #region DPAD
        //Check DPAD UP button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_UP) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererDpadUp, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_UP) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererDpadUp, false, true);
        }

        //Check DPAD DOWN button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererDpadDown, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererDpadDown, false, true);
        }

        //Check DPAD LEFT button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererDpadLeft, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererDpadLeft, false, true);
        }

        //Check DPAD RIGHT button for down state
        if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT) && bs.Equals(OuyaSDK.InputAction.KeyDown))
        {
            UpdateHighlight(RendererDpadRight, true, true);
        }
        else if (b.Equals(OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT) && bs.Equals(OuyaSDK.InputAction.KeyUp))
        {
            UpdateHighlight(RendererDpadRight, false, true);
        }
        #endregion
    }
    public static bool GetButton(OuyaSDK.OuyaPlayer player, OuyaSDK.KeyEnum keyCode)
    {
        if (null == OuyaExampleCommon.Joysticks)
        {
            return(false);
        }
        int playerIndex = (int)player - 1;

        if (playerIndex >= OuyaExampleCommon.Joysticks.Length)
        {
            return(false);
        }

        string joystickName = OuyaExampleCommon.Joysticks[playerIndex];

        if (null == joystickName)
        {
            return(false);
        }

        switch (joystickName.ToUpper())
        {
        case "BROADCOM BLUETOOTH HID":
        case "MOGA PRO HID":
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(player, 6));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(player, 7));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(player, 0));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(player, 3));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(player, 4));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(player, 1));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(player, 13));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(player, 14));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetAxis("DU", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetAxis("DD", player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetAxis("DL", player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetAxis("DR", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis("LT", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis("RT", player) > 0f);

            default:
                return(false);
            }

        case "OUYA GAME CONTROLLER":

            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(player, 4));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(player, 5));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(player, 0));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(player, 1));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(player, 2));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(player, 3));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(player, 6));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(player, 7));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetButton(player, 8));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetButton(player, 9));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetButton(player, 10));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetButton(player, 11));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetButton(player, 12));

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetButton(player, 13));

            default:
                return(false);
            }

        case "XBOX 360 WIRELESS RECEIVER":
        case "CONTROLLER (AFTERGLOW GAMEPAD FOR XBOX 360)":
        case "CONTROLLER (ROCK CANDY GAMEPAD FOR XBOX 360)":
        case "CONTROLLER (XBOX 360 WIRELESS RECEIVER FOR WINDOWS)":
        case "MICROSOFT X-BOX 360 PAD":
        case "CONTROLLER (XBOX 360 FOR WINDOWS)":
        case "CONTROLLER (XBOX360 GAMEPAD)":
        case "XBOX 360 FOR WINDOWS (CONTROLLER)":

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(player, 6));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(player, 7));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(player, 0));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(player, 3));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(player, 4));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(player, 1));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(player, 13));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(player, 14));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetAxis("DU", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetAxis("DD", player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetAxis("DL", player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetAxis("DR", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis("LT", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis("RT", player) > 0f);

            default:
                return(false);
            }
#else
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(player, 4));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(player, 5));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(player, 0));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(player, 2));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(player, 3));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(player, 1));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(player, 8));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(player, 9));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetAxis("DU", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetAxis("DD", player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetAxis("DL", player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetAxis("DR", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis("LT", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis("RT", player) > 0f);

            default:
                return(false);
            }
#endif

        case "":     //the driver is reporting the controller as blank

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(player, 6));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(player, 7));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(player, 0));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(player, 3));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(player, 4));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(player, 1));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(player, 13));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(player, 14));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetAxis("DU", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetAxis("DD", player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetAxis("DL", player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetAxis("DR", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis("LT", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis("RT", player) > 0f);

            default:
                return(false);
            }
#else
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(player, 13));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(player, 14));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(player, 16));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(player, 18));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(player, 19));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(player, 17));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(player, 11));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(player, 12));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetButton(player, 5));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetButton(player, 6));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetButton(player, 7));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetButton(player, 8));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis("LT", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis("RT", player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_SELECT:
                return(GetButton(player, 10));

            case OuyaSDK.KeyEnum.BUTTON_START:
                return(GetButton(player, 9));

            case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
                return(GetButton(player, 15));

            default:
                return(false);
            }
#endif
        }

        return(false);
    }
示例#23
0
    public string GetUnityAxisName(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
#if !UNITY_EDITOR && UNITY_ANDROID
        switch (keyCode)
        {
        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
            return(string.Format("Joy{0} Axis 1", (int)player));

        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
            return(string.Format("Joy{0} Axis 2", (int)player));

        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
            return(string.Format("Joy{0} Axis 3", (int)player));

        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
            return(string.Format("Joy{0} Axis 4", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_LT:
            return(string.Format("Joy{0} Axis 7", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_RT:
            return(string.Format("Joy{0} Axis 8", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
            return(string.Format("Joy{0} Axis 5", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
            return(string.Format("Joy{0} Axis 5", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
            return(string.Format("Joy{0} Axis 6", (int)player));

        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
            return(string.Format("Joy{0} Axis 6", (int)player));

        default:
            return(string.Empty);
        }
#else
        if (Application.platform == RuntimePlatform.OSXEditor)
        {
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                return(string.Format("Joy{0} Axis 1", (int)player));

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                return(string.Format("Joy{0} Axis 2", (int)player));

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                return(string.Format("Joy{0} Axis 3", (int)player));

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                return(string.Format("Joy{0} Axis 4", (int)player));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(string.Format("Joy{0} Axis 5", (int)player));

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(string.Format("Joy{0} Axis 6", (int)player));

            default:
                return(string.Empty);
            }
        }
        else
        {
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                return(string.Format("Joy{0} Axis 1", (int)player));

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                return(string.Format("Joy{0} Axis 2", (int)player));

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                return(string.Format("Joy{0} Axis 4", (int)player));

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                return(string.Format("Joy{0} Axis 5", (int)player));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(string.Format("Joy{0} Axis 9", (int)player));

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(string.Format("Joy{0} Axis 10", (int)player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(string.Format("Joy{0} Axis 6", (int)player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(string.Format("Joy{0} Axis 6", (int)player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(string.Format("Joy{0} Axis 7", (int)player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(string.Format("Joy{0} Axis 7", (int)player));

            default:
                return(string.Empty);
            }
        }
        #endif
    }
 public ButtonMap(JoystickType type, int buttonID, OuyaSDK.KeyEnum button)
 {
     this.type     = type;
     this.ButtonID = buttonID;
     this.button   = button;
 }
示例#25
0
    public static float GetAxis(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        if (null == OuyaExampleCommon.Joysticks)
        {
            return(0f);
        }
        int playerIndex = (int)player - 1;

        if (playerIndex >= OuyaExampleCommon.Joysticks.Length)
        {
            return(0f);
        }

        string joystickName = OuyaExampleCommon.Joysticks[playerIndex];

        if (null == joystickName)
        {
            return(0f);
        }

        bool   invert   = false;
        string axisName = string.Empty;

        switch (joystickName.ToUpper())
        {
        case "HARMONIX ROCK BAND DRUMKIT":
            return(0f);

        case "HARMONIX ROCK BAND GUITAR":
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_PICKUP:
            case OuyaSDK.KeyEnum.BUTTON_LT:
                axisName = string.Format("Joy{0} Axis 3", (int)player);
                break;

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_WHAMMI:
            case OuyaSDK.KeyEnum.BUTTON_RT:
                axisName = string.Format("Joy{0} Axis 4", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                axisName = string.Format("Joy{0} Axis 7", (int)player);
                break;

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_STRUM:
            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                axisName = string.Format("Joy{0} Axis 8", (int)player);
                break;

            default:
                return(0f);
            }
            break;

        case "BROADCOM BLUETOOTH HID":
        case "MOGA PRO HID":
#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                axisName = string.Format("Joy{0} Axis 1", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                axisName = string.Format("Joy{0} Axis 2", (int)player);
                invert   = true;
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                axisName = string.Format("Joy{0} Axis 3", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                axisName = string.Format("Joy{0} Axis 4", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_LT:
                axisName = string.Format("Joy{0} Axis 8", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_RT:
                axisName = string.Format("Joy{0} Axis 7", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            default:
                return(0f);
            }
#endif
            break;

        case "OUYA GAME CONTROLLER":

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                axisName = string.Format("Joy{0} Axis 1", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                axisName = string.Format("Joy{0} Axis 2", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                axisName = string.Format("Joy{0} Axis 3", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                axisName = string.Format("Joy{0} Axis 4", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_LT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_RT:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            default:
                return(0f);
            }
#else
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                axisName = string.Format("Joy{0} Axis 1", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                axisName = string.Format("Joy{0} Axis 2", (int)player);
                invert   = true;
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                axisName = string.Format("Joy{0} Axis 4", (int)player);
                invert   = true;
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_LT:
                axisName = string.Format("Joy{0} Axis 9", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_RT:
                axisName = string.Format("Joy{0} Axis 10", (int)player);
                break;

            default:
                return(0f);
            }
#endif
            break;

        case "XBOX 360 WIRELESS RECEIVER":

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                axisName = string.Format("Joy{0} Axis 1", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                axisName = string.Format("Joy{0} Axis 2", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                axisName = string.Format("Joy{0} Axis 3", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                axisName = string.Format("Joy{0} Axis 4", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_LT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_RT:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            default:
                return(0f);
            }
#else
            if (Application.platform == RuntimePlatform.OSXEditor)
            {
                switch (keyCode)
                {
                case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                    axisName = string.Format("Joy{0} Axis 1", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 2", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                    axisName = string.Format("Joy{0} Axis 3", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 4", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_LT:
                    axisName = string.Format("Joy{0} Axis 5", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_RT:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;

                default:
                    return(0f);
                }
            }
            else
            {
                switch (keyCode)
                {
                case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                    axisName = string.Format("Joy{0} Axis 1", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 2", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                    axisName = string.Format("Joy{0} Axis 4", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 5", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_LT:
                    axisName = string.Format("Joy{0} Axis 9", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_RT:
                    axisName = string.Format("Joy{0} Axis 10", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    axisName = string.Format("Joy{0} Axis 7", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                    axisName = string.Format("Joy{0} Axis 7", (int)player);
                    break;

                default:
                    return(0f);
                }
            }
#endif

            break;

        case "CONTROLLER (AFTERGLOW GAMEPAD FOR XBOX 360)":
        case "CONTROLLER (ROCK CANDY GAMEPAD FOR XBOX 360)":
        case "CONTROLLER (XBOX 360 WIRELESS RECEIVER FOR WINDOWS)":
        case "MICROSOFT X-BOX 360 PAD":
        case "CONTROLLER (XBOX 360 FOR WINDOWS)":
        case "CONTROLLER (XBOX360 GAMEPAD)":
        case "XBOX 360 FOR WINDOWS (CONTROLLER)":
        case "MICROSOFT WIRELESS 360 CONTROLLER":

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                axisName = string.Format("Joy{0} Axis 1", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                axisName = string.Format("Joy{0} Axis 2", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                axisName = string.Format("Joy{0} Axis 3", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                axisName = string.Format("Joy{0} Axis 4", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_LT:
                axisName = string.Format("Joy{0} Axis 7", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_RT:
                axisName = string.Format("Joy{0} Axis 8", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            default:
                return(0f);
            }
#else
            if (Application.platform == RuntimePlatform.OSXEditor)
            {
                switch (keyCode)
                {
                case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                    axisName = string.Format("Joy{0} Axis 1", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 2", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                    axisName = string.Format("Joy{0} Axis 3", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 4", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_LT:
                    axisName = string.Format("Joy{0} Axis 5", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_RT:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;

                default:
                    return(0f);
                }
            }
            else
            {
                switch (keyCode)
                {
                case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                    axisName = string.Format("Joy{0} Axis 1", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 2", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                    axisName = string.Format("Joy{0} Axis 4", (int)player);
                    break;

                case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 5", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_LT:
                    axisName = string.Format("Joy{0} Axis 9", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_RT:
                    axisName = string.Format("Joy{0} Axis 10", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    axisName = string.Format("Joy{0} Axis 7", (int)player);
                    break;

                case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                    axisName = string.Format("Joy{0} Axis 7", (int)player);
                    break;

                default:
                    return(0f);
                }
            }
#endif

            break;

        case "":     //the driver is reporting the controller as blank

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                axisName = string.Format("Joy{0} Axis 1", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                axisName = string.Format("Joy{0} Axis 2", (int)player);
                invert   = true;
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                axisName = string.Format("Joy{0} Axis 3", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                axisName = string.Format("Joy{0} Axis 4", (int)player);
                invert   = true;
                break;

            case OuyaSDK.KeyEnum.BUTTON_LT:
                axisName = string.Format("Joy{0} Axis 7", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_RT:
                axisName = string.Format("Joy{0} Axis 8", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            default:
                return(0f);
            }
#else
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                axisName = string.Format("Joy{0} Axis 1", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                axisName = string.Format("Joy{0} Axis 2", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                axisName = string.Format("Joy{0} Axis 3", (int)player);
                break;

            case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                axisName = string.Format("Joy{0} Axis 4", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_LT:
                axisName = string.Format("Joy{0} Axis 5", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_RT:
                axisName = string.Format("Joy{0} Axis 6", (int)player);
                break;

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                if (GetButton(7, player))
                {
                    return(-1);
                }
                else
                {
                    return(0);
                }

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                if (GetButton(8, player))
                {
                    return(1);
                }
                else
                {
                    return(0);
                }

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                if (GetButton(5, player))
                {
                    return(1);
                }
                else
                {
                    return(0);
                }

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                if (GetButton(6, player))
                {
                    return(-1);
                }
                else
                {
                    return(0);
                }

            default:
                return(0f);
            }
#endif

            break;
        }
        if (string.IsNullOrEmpty(axisName))
        {
            return(0f);
        }
        if (invert)
        {
            return(-Input.GetAxisRaw(axisName));
        }
        else
        {
            return(Input.GetAxisRaw(axisName));
        }
    }
示例#26
0
    public static bool GetButton(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        if (null == OuyaExampleCommon.Joysticks)
        {
            return(false);
        }
        int playerIndex = (int)player - 1;

        if (playerIndex >= OuyaExampleCommon.Joysticks.Length)
        {
            return(false);
        }

        string joystickName = OuyaExampleCommon.Joysticks[playerIndex];

        if (null == joystickName)
        {
            return(false);
        }

        switch (joystickName.ToUpper())
        {
        case "HARMONIX ROCK BAND DRUMKIT":
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_GREEN:
            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_A:
            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(0, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_RED:
            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_B:
            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(1, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_YELLOW:
            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_Y:
            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(4, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_BLUE:
            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_X:
            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(3, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_ORANGE:
            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(6, player));

            case OuyaSDK.KeyEnum.BUTTON_BACK:
            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(10, player));

            case OuyaSDK.KeyEnum.BUTTON_START:
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(11, player));

            case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(12, player));

            default:
                return(false);
            }

        case "HARMONIX ROCK BAND GUITAR":
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_GREEN:
            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(0, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_RED:
            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(1, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_YELLOW:
            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(4, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_BLUE:
            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(3, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_ORANGE:
            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(6, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_LOWER:
                return(GetButton(13, player));

            case OuyaSDK.KeyEnum.BUTTON_BACK:
            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(10, player));

            case OuyaSDK.KeyEnum.BUTTON_START:
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(11, player));

            case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(12, player));

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_PICKUP:
            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(false);

            case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_WHAMMI:
            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(false);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetAxis(keyCode, player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetAxis(keyCode, player) < 0f);

            default:
                return(false);
            }

        case "BROADCOM BLUETOOTH HID":
        case "MOGA PRO HID":
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(6, player));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(7, player));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(0, player));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(3, player));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(4, player));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(1, player));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(13, player));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(14, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetAxis(keyCode, player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetAxis(keyCode, player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis(keyCode, player) > 0f);

            default:
                return(false);
            }

        case "OUYA GAME CONTROLLER":

            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(4, player));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(5, player));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(0, player));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(1, player));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(2, player));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(3, player));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(6, player));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(7, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetButton(8, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetButton(9, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetButton(10, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetButton(11, player));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetButton(12, player));

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetButton(13, player));

            default:
                return(false);
            }

        case "XBOX 360 WIRELESS RECEIVER":

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(6, player));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(7, player));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(0, player));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(3, player));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(4, player));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(1, player));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(13, player));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(14, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetButton(2, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetButton(3, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetButton(0, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetButton(1, player));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis(keyCode, player) > 0f);

            default:
                return(false);
            }
#else
            if (Application.platform == RuntimePlatform.OSXEditor)
            {
                switch (keyCode)
                {
                case OuyaSDK.KeyEnum.BUTTON_LB:
                    return(GetButton(13, player));

                case OuyaSDK.KeyEnum.BUTTON_RB:
                    return(GetButton(14, player));

                case OuyaSDK.KeyEnum.BUTTON_O:
                    return(GetButton(16, player));

                case OuyaSDK.KeyEnum.BUTTON_U:
                    return(GetButton(18, player));

                case OuyaSDK.KeyEnum.BUTTON_Y:
                    return(GetButton(19, player));

                case OuyaSDK.KeyEnum.BUTTON_A:
                    return(GetButton(17, player));

                case OuyaSDK.KeyEnum.BUTTON_L3:
                    return(GetButton(11, player));

                case OuyaSDK.KeyEnum.BUTTON_R3:
                    return(GetButton(12, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    return(GetButton(5, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                    return(GetButton(6, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    return(GetButton(7, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                    return(GetButton(8, player));

                case OuyaSDK.KeyEnum.BUTTON_LT:
                    return(GetAxis(keyCode, player) > -1f);

                case OuyaSDK.KeyEnum.BUTTON_RT:
                    return(GetAxis(keyCode, player) > -1f);

                default:
                    return(false);
                }
            }
            else
            {
                switch (keyCode)
                {
                case OuyaSDK.KeyEnum.BUTTON_LB:
                    return(GetButton(4, player));

                case OuyaSDK.KeyEnum.BUTTON_RB:
                    return(GetButton(5, player));

                case OuyaSDK.KeyEnum.BUTTON_O:
                    return(GetButton(0, player));

                case OuyaSDK.KeyEnum.BUTTON_U:
                    return(GetButton(2, player));

                case OuyaSDK.KeyEnum.BUTTON_Y:
                    return(GetButton(3, player));

                case OuyaSDK.KeyEnum.BUTTON_A:
                    return(GetButton(1, player));

                case OuyaSDK.KeyEnum.BUTTON_L3:
                    return(GetButton(8, player));

                case OuyaSDK.KeyEnum.BUTTON_R3:
                    return(GetButton(9, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    return(GetAxis(keyCode, player) > 0f);

                case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                    return(GetAxis(keyCode, player) < 0f);

                case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    return(GetAxis(keyCode, player) < 0f);

                case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                    return(GetAxis(keyCode, player) > 0f);

                case OuyaSDK.KeyEnum.BUTTON_LT:
                    return(GetAxis(keyCode, player) > 0f);

                case OuyaSDK.KeyEnum.BUTTON_RT:
                    return(GetAxis(keyCode, player) > 0f);

                default:
                    return(false);
                }
            }
#endif

        case "CONTROLLER (AFTERGLOW GAMEPAD FOR XBOX 360)":
        case "CONTROLLER (ROCK CANDY GAMEPAD FOR XBOX 360)":
        case "CONTROLLER (XBOX 360 WIRELESS RECEIVER FOR WINDOWS)":
        case "MICROSOFT X-BOX 360 PAD":
        case "CONTROLLER (XBOX 360 FOR WINDOWS)":
        case "CONTROLLER (XBOX360 GAMEPAD)":
        case "XBOX 360 FOR WINDOWS (CONTROLLER)":
        case "MICROSOFT WIRELESS 360 CONTROLLER":

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(6, player));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(7, player));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(0, player));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(3, player));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(4, player));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(1, player));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(13, player));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(14, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetAxis(keyCode, player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetAxis(keyCode, player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis(keyCode, player) > 0f);

            default:
                return(false);
            }
#else
            if (Application.platform == RuntimePlatform.OSXEditor)
            {
                switch (keyCode)
                {
                case OuyaSDK.KeyEnum.BUTTON_LB:
                    return(GetButton(13, player));

                case OuyaSDK.KeyEnum.BUTTON_RB:
                    return(GetButton(14, player));

                case OuyaSDK.KeyEnum.BUTTON_O:
                    return(GetButton(16, player));

                case OuyaSDK.KeyEnum.BUTTON_U:
                    return(GetButton(18, player));

                case OuyaSDK.KeyEnum.BUTTON_Y:
                    return(GetButton(19, player));

                case OuyaSDK.KeyEnum.BUTTON_A:
                    return(GetButton(17, player));

                case OuyaSDK.KeyEnum.BUTTON_L3:
                    return(GetButton(11, player));

                case OuyaSDK.KeyEnum.BUTTON_R3:
                    return(GetButton(12, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    return(GetButton(5, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                    return(GetButton(6, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    return(GetButton(7, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                    return(GetButton(8, player));

                case OuyaSDK.KeyEnum.BUTTON_LT:
                    return(GetAxis(keyCode, player) > -1f);

                case OuyaSDK.KeyEnum.BUTTON_RT:
                    return(GetAxis(keyCode, player) > -1f);

                default:
                    return(false);
                }
            }
            else
            {
                switch (keyCode)
                {
                case OuyaSDK.KeyEnum.BUTTON_LB:
                    return(GetButton(4, player));

                case OuyaSDK.KeyEnum.BUTTON_RB:
                    return(GetButton(5, player));

                case OuyaSDK.KeyEnum.BUTTON_O:
                    return(GetButton(0, player));

                case OuyaSDK.KeyEnum.BUTTON_U:
                    return(GetButton(2, player));

                case OuyaSDK.KeyEnum.BUTTON_Y:
                    return(GetButton(3, player));

                case OuyaSDK.KeyEnum.BUTTON_A:
                    return(GetButton(1, player));

                case OuyaSDK.KeyEnum.BUTTON_L3:
                    return(GetButton(8, player));

                case OuyaSDK.KeyEnum.BUTTON_R3:
                    return(GetButton(9, player));

                case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    return(GetAxis(keyCode, player) > 0f);

                case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                    return(GetAxis(keyCode, player) < 0f);

                case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    return(GetAxis(keyCode, player) < 0f);

                case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                    return(GetAxis(keyCode, player) > 0f);

                case OuyaSDK.KeyEnum.BUTTON_LT:
                    return(GetAxis(keyCode, player) > 0f);

                case OuyaSDK.KeyEnum.BUTTON_RT:
                    return(GetAxis(keyCode, player) > 0f);

                default:
                    return(false);
                }
            }
#endif

        case "":     //the driver is reporting the controller as blank

#if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(6, player));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(7, player));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(0, player));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(3, player));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(4, player));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(1, player));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(13, player));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(14, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetAxis(keyCode, player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetAxis(keyCode, player) < 0f);

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis(keyCode, player) > 0f);

            default:
                return(false);
            }
#else
            switch (keyCode)
            {
            case OuyaSDK.KeyEnum.BUTTON_LB:
                return(GetButton(13, player));

            case OuyaSDK.KeyEnum.BUTTON_RB:
                return(GetButton(14, player));

            case OuyaSDK.KeyEnum.BUTTON_O:
                return(GetButton(16, player));

            case OuyaSDK.KeyEnum.BUTTON_U:
                return(GetButton(18, player));

            case OuyaSDK.KeyEnum.BUTTON_Y:
                return(GetButton(19, player));

            case OuyaSDK.KeyEnum.BUTTON_A:
                return(GetButton(17, player));

            case OuyaSDK.KeyEnum.BUTTON_L3:
                return(GetButton(11, player));

            case OuyaSDK.KeyEnum.BUTTON_R3:
                return(GetButton(12, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                return(GetButton(5, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                return(GetButton(6, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                return(GetButton(7, player));

            case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                return(GetButton(8, player));

            case OuyaSDK.KeyEnum.BUTTON_LT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_RT:
                return(GetAxis(keyCode, player) > 0f);

            case OuyaSDK.KeyEnum.BUTTON_SELECT:
                return(GetButton(10, player));

            case OuyaSDK.KeyEnum.BUTTON_START:
                return(GetButton(9, player));

            case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
                return(GetButton(15, player));

            default:
                return(false);
            }
#endif
        }

        return(false);
    }
示例#27
0
 public bool HasAxis(OuyaSDK.KeyEnum keyCode)
 {
     OuyaSDK.KeyEnum[] axises = GetSupportedAxises();
     return(HasKeyCode(axises, keyCode));
 }