[HELP] Mac makes key remain pressed after screen capture on webgl

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]

  1. press shift + (nothing or some keys like β€˜a’) + cmd + 5
  2. Activate screen capture
  3. press esc to escape screen capture
  4. check console log β†’ shift + (nothing or some keys) are pressed
  5. press shift again
  6. check log β†’ keydown event doesn’t work but keyup event works

Can I force to release that pressed key?

Check here

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

2 Likes