UnrealEngine
[UE4] UE에서의 Input 처리 플로우
송만덕
2023. 10. 28. 14:49
Unreal4에서의 Input 처리에 대한 호출 플로우
(마우스 클릭 예시)
1. FSlateApplication::OnMouseDown(const TSharedPtr< FGenericWindow >& PlatformWindow, const EMouseButtons::Type Button)
2. FSlateApplication::OnMouseDown( const TSharedPtr< FGenericWindow >& PlatformWindow, const EMouseButtons::Type Button, const FVector2D CursorPos )
3. FSlateApplication::ProcessMouseButtonDownEvent( const TSharedPtr< FGenericWindow >& PlatformWindow, const FPointerEvent& MouseEvent )
- Reply = RoutePointerDownEvent(WidgetsUnderCursor, MouseEvent);
4. FSlateApplication::RoutePointerDownEvent(const FWidgetPath& WidgetsUnderPointer, const FPointerEvent& PointerEvent)
- TargetWidget.Widget->OnMouseButtonDown( TargetWidget.Geometry, Event );
- 슬레이트 상단부터.. ex) 위젯... SceneViewport...
5-1. SWidget::OnMouseButtonDown( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent )
- SButton::OnMouseButtonDown( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent ) ... 슬레이트 처리
5-2. SViewport::OnMouseButtonDown( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent )
- FSceneViewport::OnMouseButtonDown( const FGeometry& InGeometry, const FPointerEvent& InMouseEvent )
- UGameViewportClient::InputKey(const FInputKeyEventArgs& EventArgs)
- APlayerController::InputKey(FKey Key, EInputEvent EventType, float AmountDepressed, bool bGamepad)
- UPlayerInput::InputKey(FKey Key, enum EInputEvent Event, float AmountDepressed, bool bGamepad) ... 이후 처리