이 함수는 키 입력이 발생했을 때, 적절한 이벤트(KeyPressedEvent
또는 KeyReleasedEvent
)를 생성하고, 이를 mEventCallback
을 통해 전달하는 역할을 합니다.
action
)에 따라 이벤트를 생성
RELEASE
(0): 키가 떼어짐 → KeyReleasedEvent
PRESS
(1): 키가 처음 눌림 → KeyPressedEvent
(isRepeat=false
)REPEAT
(2): 키가 계속 눌려 있음 → KeyPressedEvent
(isRepeat=true
)mEventCallback
을 호출하여 이를 전달
OnEvent()
에서 추가적인 처리 수행이 함수는 발생한 이벤트를 적절한 핸들러로 전달하는 역할을 합니다.
EventDispatcher
를 이용해 전달받은 이벤트를 감지하고, 해당 이벤트의 핸들러를 호출:
KeyPressedEvent
→ OnKeyPressed(e)
호출KeyReleasedEvent
→ 현재 구현 없음 (TODO 주석)MouseMovedEvent
→ 기본적으로 true
를 반환하지만, 아직 추가 로직 없음e.Handled == false
), mImguiEditor->OnEvent(e)
를 호출하여 ImGui에서 이벤트를 처리이 함수는 키가 눌렸을 때, 특정 기능을 수행하는 역할을 합니다.
특히 ImGuizmo
와 관련된 키 입력을 처리하는 부분이 중요합니다.
REPEAT
키 입력 무시
e.IsRepeat()
가 true
이면 바로 false
반환control
: 왼쪽 또는 오른쪽 컨트롤 키가 눌려 있는지 확인shift
: 왼쪽 또는 오른쪽 시프트 키가 눌려 있는지 확인e.GetKeyCode()
)에 따라 동작 수행
ImGuizmo
사용 중이 아니면 기즈모(Gizmo) 모드를 해제ImGuizmo
사용 중이 아니면 이동(Translate) 모드로 변경ImGuizmo
사용 중이 아니면 회전(Rotate) 모드로 변경Control
키가 눌렸다면 스크립트 리로드 (현재 주석 처리됨)ImGuizmo
사용 중이 아닐 때 크기 조절(Scale) 모드로 변경