Ejemplo n.º 1
0
    ///////////////////////////////////////////////////////////////////////////////////////////////
    /// <summary>
    /// function desc.
    /// </summary>
    ///////////////////////////////////////////////////////////////////////////////////////////////
    void UpdateKeyInput()
    {
        #region RELEASED
        if (Input.GetKeyUp(key))
        {
            //update data
            keyInputData.SetStatus(InputStatus.RELEASED);
            keyInputData.SetXYRawValue(Vector2.zero);
            keyInputData.AddXYValue(Vector2.zero);
            keyInputData.SetHeldDuration(0f);
            keyInputData.SetInactiveDuration(Time.deltaTime);

            //perform input action if there is one assigned
            if (keyInputStatusAction.onReleased != null)
            {
                keyInputStatusAction.onReleased.Activate(keyInputData);
            }

            //broadcast a message
            Events.instance.Raise(new EVENT_INPUT_KEYBOARD_KEY_BROADCAST(keyInputData));

            //DEBUG — check which key is released and print its status
            //Debug.Log("key released: " + key + " status = " + keyInputData.Status);
        }
        #endregion
        #region HELD
        if (Input.GetKey(key))
        {
            //update data
            keyInputData.SetStatus(InputStatus.HELD);
            keyInputData.SetXYRawValue(Vector2.one);
            keyInputData.AddXYValue(Vector2.one);
            keyInputData.SetHeldDuration(Time.deltaTime);
            keyInputData.SetInactiveDuration(0);

            //perform input action if there is one assigned
            if (keyInputStatusAction.onHeld != null)
            {
                keyInputStatusAction.onHeld.Activate(keyInputData);
            }

            //broadcast a message
            Events.instance.Raise(new EVENT_INPUT_KEYBOARD_KEY_BROADCAST(keyInputData));

            //DEBUG — check which key is held and print its status
            //Debug.Log("key held: " + key + " status = " + keyInputData.Status);
        }
        #endregion
        #region PRESSED
        if (Input.GetKeyDown(key))
        {
            //update data
            keyInputData.SetStatus(InputStatus.PRESSED);
            keyInputData.SetXYRawValue(Vector2.one);
            keyInputData.AddXYValue(Vector2.one);
            keyInputData.SetHeldDuration(Time.deltaTime);
            keyInputData.SetInactiveDuration(0f);

            //perform input action if there is one assigned
            if (keyInputStatusAction.onPressed != null)
            {
                keyInputStatusAction.onPressed.Activate(keyInputData);
            }

            //broadcast a message
            Events.instance.Raise(new EVENT_INPUT_KEYBOARD_KEY_BROADCAST(keyInputData));

            //DEBUG — check which key is pressed and print its status
            //Debug.Log("key pressed: " + key + " status = " + keyInputData.Status);
        }
        #endregion
        #region INACTIVE
        //inactive
        else
        {
            //update data
            keyInputData.SetStatus(InputStatus.INACTIVE);
            keyInputData.SetXYRawValue(Vector2.zero);
            keyInputData.AddXYValue(Vector2.zero);
            keyInputData.SetHeldDuration(0f);
            keyInputData.SetInactiveDuration(Time.deltaTime);

            //DEBUG — check which key is inactive and print its status
            //Debug.Log("key inactive: " + key + " status = " + keyInputData.Status);
        }
        #endregion
    }