Пример #1
0
    /// <summary>
    /// Wrap Unity's method
    /// </summary>
    /// <param name="inputName"></param>
    /// <returns></returns>
    public static float GetAxis(string inputName, OuyaSDK.OuyaPlayer player)
    {
#if !UNITY_EDITOR && !UNITY_STANDALONE_OSX && !UNITY_STANDALONE_WIN && !UNITY_STANDALONE_LINUX
        switch (inputName)
        {
        case "LT":
            return(OuyaInputManager.getPlayerKeyState(player).m_axisLeftTrigger);

        case "RT":
            return(OuyaInputManager.getPlayerKeyState(player).m_axisRightTrigger);

        case "RX":
            return(OuyaInputManager.getPlayerKeyState(player).m_axisRightStickX);

        case "RY":
            return(OuyaInputManager.getPlayerKeyState(player).m_axisRightStickY);

        case "LX":
            return(OuyaInputManager.getPlayerKeyState(player).m_axisLeftStickX);

        case "LY":
            return(-OuyaInputManager.getPlayerKeyState(player).m_axisLeftStickY);
        }
        return(0f);
#else
        string axisName     = string.Empty;
        int    invertFactor = GetInvertedFactor(GetControllerType(player), inputName);
        switch (inputName)
        {
        case "LT":
            axisName = OuyaInputManager.GetInput(player, AxisTypes.Horizontal, AnalogTypes.LTRT);
            break;

        case "RT":
            axisName = OuyaInputManager.GetInput(player, AxisTypes.Vertical, AnalogTypes.LTRT);
            break;

        case "RX":
            axisName = OuyaInputManager.GetInput(player, AxisTypes.Horizontal, AnalogTypes.Right);
            break;

        case "RY":
            axisName = OuyaInputManager.GetInput(player, AxisTypes.Vertical, AnalogTypes.Right);
            break;

        case "LX":
            axisName = OuyaInputManager.GetInput(player, AxisTypes.Horizontal, AnalogTypes.Left);
            break;

        case "LY":
            axisName = OuyaInputManager.GetInput(player, AxisTypes.Vertical, AnalogTypes.Left);
            break;
        }
        if (!string.IsNullOrEmpty(axisName))
        {
            return(invertFactor * Input.GetAxis(axisName));
        }
        return(0f);
#endif
    }
Пример #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);
     }
 }
Пример #3
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
     }
 }
    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);
            }
        }
    }
Пример #5
0
    // Use this for initialization
    void Start()
    {
        loader      = FindObjectOfType(typeof(loadingScript)) as loadingScript;
        playerName  = OuyaSDK.OuyaPlayer.player1;
        Hawes       = GetComponent(typeof(CharacterController)) as CharacterController;
        startScript = FindObjectOfType(typeof(StartScript)) as StartScript;
        gui         = FindObjectOfType(typeof(GUI_HUD)) as GUI_HUD;
        HandNull    = GameObject.FindGameObjectWithTag("HandNull").transform;

        Character.renderer.material = HawesDiffuse;
        weaponInHand = 2;
        if (PlayerPrefs.GetString("currentWeapon") == "")
        {
            weaponInHand = 0;
        }
        else if (PlayerPrefs.GetString("currentWeapon") == "machete")
        {
            weaponInHand = 1;
        }
        else if (PlayerPrefs.GetString("currentWeapon") == "shotgun")
        {
            weaponInHand = 2;
        }
        else if (PlayerPrefs.GetString("currentWeapon") == "semiauto")
        {
            weaponInHand = 3;
        }

        weaponInHand = 1;

        LoadWeapon();
    }
    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);
    }
Пример #7
0
    /// <summary>
    /// Builds a string to get the controller by player.
    /// </summary>
    /// <param name="player"></param>
    /// <param name="axis"></param>
    /// <param name="type"></param>
    /// <param name="atype"></param>
    /// <returns></returns>
    public static string GetInput(OuyaSDK.OuyaPlayer player, AxisTypes axis, AnalogTypes atype)
    {
        Vector2      point;
        JoystickType joystickType = GetControllerType(player);

        switch (joystickType)
        {
        case JoystickType.ps3:
            //Note We don't care if the axis is X or Y,  we just want to check for input from normalized.
            #region PS3 Controller
            point = new Vector2(Input.GetAxis(CheckInput(player, axis, JoystickType.ps3, AnalogTypes.Left)), Input.GetAxis(CheckInput(player, axis, JoystickType.ps3, AnalogTypes.Right)));
            if (point.x != 0f || point.y != 0f)
            {
                return(CheckInput(player, axis, JoystickType.ps3, atype));
            }
            if (atype.Equals(AnalogTypes.DPad))
            {
                return(CheckInput(player, axis, JoystickType.ps3, atype));
            }
            #endregion
            return(string.Empty);

        case JoystickType.xbox:
            #region xbox360
            point = new Vector2(Input.GetAxis(CheckInput(player, axis, JoystickType.xbox, AnalogTypes.Left)), Input.GetAxis(CheckInput(player, axis, JoystickType.xbox, AnalogTypes.Right)));
            if (point.x != 0f || point.y != 0f)
            {
                return(CheckInput(player, axis, JoystickType.xbox, atype));
            }
            if (atype.Equals(AnalogTypes.DPad))
            {
                return(CheckInput(player, axis, JoystickType.xbox, atype));
            }
            if (atype.Equals(AnalogTypes.LTRT))
            {
                return(CheckInput(player, axis, JoystickType.xbox, atype));
            }
            #endregion
            return(string.Empty);

        case JoystickType.ouya:
            point = new Vector2(Input.GetAxis(CheckInput(player, axis, JoystickType.ouya, AnalogTypes.Left)), Input.GetAxis(CheckInput(player, axis, JoystickType.ouya, AnalogTypes.Right)));
            if (point.x != 0f || point.y != 0f)
            {
                return(CheckInput(player, axis, JoystickType.ouya, atype));
            }
            if (atype.Equals(AnalogTypes.DPad))
            {
                return(CheckInput(player, axis, JoystickType.ouya, atype));
            }
            if (atype.Equals(AnalogTypes.LTRT))
            {
                return(CheckInput(player, axis, JoystickType.ouya, atype));
            }
            return(string.Empty);

        default:
            return("Horizontal");
        }
    }
Пример #8
0
        protected override float ProcessAxis(Key key, float deadZone)
        {
            if (key.map == InputKeyMap.None)
            {
                return(base.ProcessAxis(key, deadZone));
            }

            OuyaSDK.OuyaPlayer player = GetPlayer(key);

            switch (key.axis)
            {
            case ButtonAxis.Minus:
                return(OuyaExampleCommon.GetButton((OuyaSDK.KeyEnum)key.map, player) ? -1.0f : 0.0f);

                break;

            case ButtonAxis.Plus:
                return(OuyaExampleCommon.GetButton((OuyaSDK.KeyEnum)key.map, player) ? 1.0f : 0.0f);

                break;

            case ButtonAxis.Both:
                float val = OuyaExampleCommon.GetAxis((OuyaSDK.KeyEnum)key.map, player);
                return(Mathf.Abs(val) > deadZone ? val : 0.0f);
            }

            return(0.0f);
        }
Пример #9
0
    public static float GetAxis(string inputName, OuyaSDK.OuyaPlayer player)
    {
        switch (Moga)
        {
        case true:
            switch (inputName)
            {
            case "TurnRight":
                return(MogaInput.GetAxis("R2"));               //MogaController.KEYCODE_BUTTON_R2;//R2

            case "TurnLeft":
                return(MogaInput.GetAxis("L2"));               //MogaController.KEYCODE_BUTTON_L2;//L2

            case "Roll":
                return(MogaInput.GetAxis("Horizontal"));               //MogaController.AXIS_X;//X

            case "Vertical":
                return(MogaInput.GetAxis("Vertical"));               //MogaController.AXIS_Y;//Y

            case "Pitch":
                return(MogaInput.GetAxis("LookVertical"));               //MogaController.AXIS_RZ;//RZ

            case "Yaw":
                return(MogaInput.GetAxis("LookHorizontal"));               //MogaController.AXIS_Z;//Z

            default:
                return(0);
            }

        case false:

            switch (inputName)
            {
            case "TurnRight":
                return(OuyaExampleCommon.GetAxis("RT", player));

            case "TurnLeft":
                return(OuyaExampleCommon.GetAxis("LT", player));

            case "Roll":
                return(OuyaExampleCommon.GetAxis("LX", player));

            case "Vertical":
                return(OuyaExampleCommon.GetAxis("LY", player));

            case "Pitch":
                return(OuyaExampleCommon.GetAxis("RY", player));

            case "Yaw":
                return(OuyaExampleCommon.GetAxis("RX", player));

            default:
                return(0);
            }
        }
        return(0);
    }
Пример #10
0
 public static JoystickType GetControllerType(OuyaSDK.OuyaPlayer player)
 {
     // check the player to see what joystick type they have
     OuyaGameObject.Device device = OuyaGameObject.devices.Find(delegate(OuyaGameObject.Device d) { return((null == d) ? false : (d.player == player)); });
     if (null == device)
     {
         return(JoystickType.none);
     }
     return(GetControllerType(device.name));
 }
Пример #11
0
    /// <summary>
    /// Wrap Unity's method
    /// </summary>
    /// <param name="inputName"></param>
    /// <returns></returns>
    public static bool GetButton(string inputName, OuyaSDK.OuyaPlayer player)
    {
        switch (inputName)
        {
        case "SYS":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonSystem);

        case "DPC":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonDPadCenter);

        case "DPD":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonDPadDown);

        case "DPL":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonDPadLeft);

        case "DPR":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonDPadRight);

        case "DPU":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonDPadUp);

        case "O":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonO);

        case "U":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonU);

        case "Y":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonY);

        case "A":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonA);

        case "LT":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonLT);

        case "RT":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonRT);

        case "LB":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonLB);

        case "RB":     //arbitrary name and mapping
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonRB);

        case "L3":
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonL3);

        case "R3":
            return(OuyaInputManager.getPlayerKeyState(player).m_buttonR3);
        }

        return(false);
    }
Пример #12
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));
    }
Пример #13
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));
    }
Пример #14
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));
    }
    protected string CommonGetKeyString(int buttonNum, OuyaSDK.OuyaPlayer player)
    {
        switch (player)
        {
        case OuyaSDK.OuyaPlayer.none:
            return(string.Format("JoystickButton{0}", buttonNum));

        default:
            return(string.Format("Joystick{0}Button{1}", ((int)player), buttonNum));
        }
    }
Пример #16
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));
    }
Пример #17
0
    /// <summary>
    /// Return the supported buttons
    /// </summary>
    /// <param name="player"></param>
    /// <returns></returns>
    public static OuyaSDK.KeyEnum[] GetSupportedButtons(OuyaSDK.OuyaPlayer player)
    {
        IOuyaController controller = GetSupportedController(player);

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

        return(controller.GetSupportedButtons());
    }
    public static string GetKeyCode(OuyaSDK.OuyaPlayer player, int buttonNum)
    {
        switch (player)
        {
        case OuyaSDK.OuyaPlayer.none:
            return(string.Format("JoystickButton{0}", buttonNum));

        default:
            return(string.Format("Joystick{0}Button{1}", ((int)player), buttonNum));
        }
    }
    public static bool GetButton(OuyaSDK.OuyaPlayer player, int buttonNum)
    {
        string keyCode = GetKeyCode(player, buttonNum);

        if (string.IsNullOrEmpty(keyCode))
        {
            return(false);
        }
        OuyaKeyCode key = (OuyaKeyCode)Enum.Parse(typeof(OuyaKeyCode), keyCode);

        return(Input.GetKey((KeyCode)(int)key));
    }
    protected KeyCode CommonGetUnityKeyCode(int buttonNum, OuyaSDK.OuyaPlayer player)
    {
        string keyCode = CommonGetKeyString(buttonNum, player);

        if (string.IsNullOrEmpty(keyCode))
        {
            return((KeyCode)(-1));
        }
        OuyaKeyCode key = (OuyaKeyCode)Enum.Parse(typeof(OuyaKeyCode), keyCode);

        return((KeyCode)(int)key);
    }
Пример #21
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
    }
Пример #22
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");
        }
    }
Пример #23
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));
        }
    }
Пример #24
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);
        }
    }
Пример #25
0
    void FixedUpdate()
    {
        UpdateController();
        UpdateLabels();

        if (Input.GetMouseButtonDown(0))
        {
            int index = ((int)m_player + 1) % 9;
            if (index == 0)
            {
                ++index;
            }
            m_player = (OuyaSDK.OuyaPlayer)index;
            UpdatePlayerButtons();
        }
    }
    void Update()
    {
        if (joystickCanTrigger && enabled && NGUITools.GetActive(gameObject))
        {
            float greatestX = 0.0f;
            float greatestY = 0.0f;
            float leastX    = 0.0f;
            float leastY    = 0.0f;

            //foreach (OuyaSDK.OuyaPlayer player in Enum.GetValues(typeof(OuyaSDK.OuyaPlayer))) // TODO: Use once input lag is fixed
            for (int i = 1; i <= 4; ++i) // HACK: check a hard-coded number of players
            {
                OuyaSDK.OuyaPlayer player = (OuyaSDK.OuyaPlayer)i;

                float joystickX = OuyaInputManager.GetAxis("LX", player);
                float joystickY = OuyaInputManager.GetAxis("LY", player);

                greatestX = Math.Max(joystickX, greatestX);
                greatestY = Math.Max(joystickY, greatestY);
                leastX    = Math.Min(joystickX, leastX);
                leastY    = Math.Min(joystickY, leastY);
            }

            if (greatestX > JoystickThreshold)
            {
                StartJoystickResetTimer();
                OnKey(KeyCode.RightArrow);
            }
            if (greatestY > JoystickThreshold)
            {
                StartJoystickResetTimer();
                OnKey(KeyCode.UpArrow);
            }
            if (leastX < -JoystickThreshold)
            {
                StartJoystickResetTimer();
                OnKey(KeyCode.LeftArrow);
            }
            if (leastY < -JoystickThreshold)
            {
                StartJoystickResetTimer();
                OnKey(KeyCode.DownArrow);
            }
        }
    }
Пример #27
0
    public static float GetAxis(string ouyaMapping, OuyaSDK.OuyaPlayer player)
    {
        switch (ouyaMapping)
        {
        case "LB":
            return(GetAxis(OuyaSDK.KeyEnum.BUTTON_LB, player));

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

        case "LX":
            return(GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_X, player));

        case "LY":
            return(GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_Y, player));

        case "RB":
            return(GetAxis(OuyaSDK.KeyEnum.BUTTON_RB, player));

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

        case "RX":
            return(GetAxis(OuyaSDK.KeyEnum.AXIS_RSTICK_X, player));

        case "RY":
            return(GetAxis(OuyaSDK.KeyEnum.AXIS_RSTICK_Y, player));

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

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

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

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

        default:
            return(0f);
        }
    }
Пример #28
0
    /// <summary>
    /// Check if the player has a supported controller
    /// </summary>
    /// <param name="player"></param>
    /// <returns></returns>
    public static IOuyaController GetSupportedController(OuyaSDK.OuyaPlayer player)
    {
        if (null == OuyaSDK.Joysticks)
        {
            return(null);
        }
        int playerIndex = (int)player - 1;

        if (playerIndex >= OuyaSDK.Joysticks.Length)
        {
            return(null);
        }

        string joystickName = OuyaSDK.Joysticks[playerIndex];

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

        return(GetSupportedController(joystickName));
    }
    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);
    }
Пример #30
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
    }