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