private void BeforeReceiveInput() { // 每帧开始时清除输入 _inputMapper.ClearLastFrameInput(); _firedKeyThisFrame.Clear(); // 该帧内按下的键 _keyCache.Clear(); foreach (KeyCode key in _holdedKeyThisFrame.Keys) { _keyCache.Add(key); } // 累计按下时间 for (int i = 0; i < _keyCache.Count; i++) { _holdedKeyThisFrame[_keyCache[i]] += Time.deltaTime; } }