Hi, I have a keyboard system that if some keys were pressed some key objects change their color.
However, I have a problem on macOS.
After screen capture using the shortcut (cmd + shift + 4 or 5), the shift key remains pressed state.
When I used Input.GetKey() in Update() function, it was called on every update eventhough screencapture was finished at all and unity application was focused.
[Process]
- press shift + (nothing or some keys like βaβ) + cmd + 5
- Activate screen capture
- press esc to escape screen capture
- check console log β shift + (nothing or some keys) are pressed
- press shift again
- check log β keydown event doesnβt work but keyup event works
Can I force to release that pressed key?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class KeyObject : MonoBehaviour
{
[SerializeField] private KeyCode _keyCode;
private RawImage _rawImage;
private Color originColor = new Color();
private Color translucentColor = new Color(1, 1, 1, 0.2f);
void Start()
{
_rawImage = GetComponent<RawImage>();
originColor = _rawImage.color;
}
void Update()
{
if (Input.GetKeyDown(_keyCode))
{
Debug.Log(_keyCode + " down");
_rawImage.color = translucentColor;
}
else if (Input.GetKey(_keyCode))
{
Debug.Log(_keyCode);
}
else if (Input.GetKeyUp(_keyCode))
{
Debug.Log(_keyCode + " up");
_rawImage.color = originColor;
}
else
{
_rawImage.color = originColor;
}
}
}