/////////////////////////////////////////////////////////////////////////////////////////////// /// <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 }