public KeyBuffer(KeyCode keyCode, EInputCommand inputCmd)
 {
     KeyCodeValue            = keyCode;
     CmdMessage              = new InputCommandMessage();
     CmdMessage.InputCommand = inputCmd;
     CmdMessage.InputState   = EInputState.Release;
 }
    public void HandleCommandMessage(InputCommandMessage inCmdMessage)
    {
        InputCommandState targetState;

        if (cmdStateDict.TryGetValue(inCmdMessage.InputCommand, out targetState))
        {
            targetState.HandleInputMessage(inCmdMessage);
        }
    }
    public void HandleInputMessage(InputCommandMessage inCmdMessage)
    {
        switch (inCmdMessage.InputState)
        {
        case EInputState.Release:
            break;

        case EInputState.Press:
            _pressCount++;
            break;

        case EInputState.Hold:
            _holdCount++;
            break;
        }
    }