SetKeyPressed(int keyCode, int scancode, int action, int mods)

이 함수는 키 입력이 발생했을 때, 적절한 이벤트(KeyPressedEvent 또는 KeyReleasedEvent)를 생성하고, 이를 mEventCallback을 통해 전달하는 역할을 합니다.

동작 과정

  1. 입력된 키 상태(action)에 따라 이벤트를 생성
  2. 이벤트를 생성한 후, mEventCallback을 호출하여 이를 전달

OnEvent(ya::Event& e)

이 함수는 발생한 이벤트를 적절한 핸들러로 전달하는 역할을 합니다.

동작 과정

  1. EventDispatcher를 이용해 전달받은 이벤트를 감지하고, 해당 이벤트의 핸들러를 호출:
  2. 이벤트가 처리되지 않았다면(e.Handled == false), mImguiEditor->OnEvent(e)를 호출하여 ImGui에서 이벤트를 처리

OnKeyPressed(ya::KeyPressedEvent& e)

이 함수는 키가 눌렸을 때, 특정 기능을 수행하는 역할을 합니다.

특히 ImGuizmo와 관련된 키 입력을 처리하는 부분이 중요합니다.

동작 과정

  1. REPEAT 키 입력 무시
  2. 컨트롤(Control) 및 시프트(Shift) 키 상태 확인
  3. 입력된 키 코드(e.GetKeyCode())에 따라 동작 수행