예제 #1
0
    private void ReceiveInput()
    {
        foreach (KeyCode keyCode in keycodeSet)
        {
            if (Input.GetKeyDown(keyCode))
            {
                if (_holdedKeyThisFrame.ContainsKey(keyCode) == false)
                {
                    _holdedKeyThisFrame.Add(keyCode, 0f);
                }
            }
        }

        _inputMapper.RawKeyHolded(_holdedKeyThisFrame);

        foreach (KeyCode keyCode in keycodeSet)
        {
            // 将释放的按键加入释放按键列表,由InputMapper转换为当前输入环境的逻辑按键
            if (Input.GetKeyUp(keyCode))
            {
                if (_holdedKeyThisFrame.ContainsKey(keyCode))
                {
                    _firedKeyThisFrame.Add(keyCode, _holdedKeyThisFrame[keyCode]);
                    _holdedKeyThisFrame.Remove(keyCode);
                }
            }
        }

        _inputMapper.RawKeyReleased(_firedKeyThisFrame);
    }