콘솔 슬레이트 디버거

콘솔 슬레이트 디버거 툴을 위한 레퍼런스 매뉴얼로, 사용자가 슬레이트 UI 프레임워크를 사용해 애플리케이션을 디버그할 수 있도록 지원합니다.

Choose your operating system:

Windows

macOS

Linux

필요한 사전지식

이 페이지의 콘텐츠를 이해하고 활용하기 위해 다음 주제를 숙지해 주세요.

콘솔 슬레이트 디버거(Console Slate Debugger) 는 애플리케이션의 유저 인터페이스(UI)를 개발하는 과정에서 UI 개발자가 슬레이트를 디버그해야 할 때 도움이 됩니다. 콘솔 슬레이트 디버거는 FSlateDebugging의 사용 가능한 시스템에 후킹하여 내부 슬레이트 데이터를 출력합니다. 또한 UI를 중점적으로 변경하거나 변경을 시도할 때 개발자는 이러한 중점적 업데이트를 처리하는 시스템이 무엇인지 파악해야 합니다.

SlateConsole.png

콘솔 슬레이트 디버거

4.26에서는 콘솔 슬레이트 디버거의 익스텐션에 다음이 포함됩니다.

  • 비용이 높은 프레임의 원인인 위젯을 식별하는 GlobalInvalidation

  • 주어진 프레임에 페인트한 위젯을 표시하는 페인트 옵션

  • 시스템이 이벤트 핸들러로 위젯을 선택하는 방법을 볼 수 있도록 하는 추가 라우팅 옵션

  • 추가 필터 및 이벤트 콘솔 명령

SlateDebugger

PIE 모드에서 프로젝트를 실행하는 동안 물결표(~) 키를 눌러 PIE 콘솔을 열고 SlateDebugger 라고 입력합니다.

SlateDebuggerConsole.gif

일반적으로 SlateDebugger 로그는 [프로젝트 이름]/Saved/Logs[프로젝트 이름].txt 로그 파일에 작성됩니다.

이벤트 명령

슬레이트 디버거에는 특정 로그의 활성화 여부나 이벤트 필터링 등 특정한 정보를 파악하는 다양한 명령이 있습니다. 더 많은 정보가 필요하다면 CaptureStack도 트리거된 이벤트의 콜 스택을 제공할 수 있습니다.

SlateDebugger.Event

명령 설명

Start

슬레이트 콘솔 디버거를 시작하는 SlateDebugger.Event.Start 의 다른 이름입니다.

Stop

슬레이트 콘솔 디버거를 중지하는 SlateDebugger.Event.Stop 의 다른 이름입니다.

SetInputFilter

특정 입력 필터를 활성화 또는 비활성화합니다.

SetFocusFilter

특정 포커스 필터를 활성화 또는 비활성화합니다.

LogWarning

경고 이벤트 로그입니다.

LogInputEvent

입력 이벤트 로그입니다.

LogFocusEvent

포커스 이벤트 로그입니다.

LogExecuteNavigationEvent

내비게이션 이벤트 실행 로그입니다.

LogCaptureStateChangeEvent

커서 스테이트 변경 이벤트 로그입니다.

LogCursorChangeEvent

커서 변경 이벤트 로그입니다.

LogAttemptNavigationEvent

내비게이션 이벤트 시도 로그입니다.

InputRoutingModeEnabled

활성화하면 입력 이벤트가 받는 라우팅을 출력합니다.

EnableAllInputFilters

모든 입력 필터를 활성화합니다.

DisableAllInputFilters

모든 입력 필터를 비활성화합니다.

EnableAllFocusFilters

모든 포커스 필터를 활성화합니다.

DisableAllFocusFilters

모든 포커스 필터를 비활성화합니다.

CaptureStack

I활성화하면 이벤트 발생 시 스택을 캡처합니다.

무효화 명령

무효화 명령을 사용하여 무효화된 화면 내 위젯을 표시하도록 해 주는 명령입니다. 각각의 무효화된 위젯은 무효화 타입에 따라 서로 다른 색으로 강조됩니다.

DebuggerInvalidate.png

SlateDebugger.Invalidate

SlateDebugger.Invalidate

명령 설명

Enable

현재 상태에 따라 인밸리데이션 위젯 디버그 툴을 시작하고 위젯이 무효화를 수행할 때 표시되거나, 인밸리데이션 위젯 디버그 툴을 중지합니다.

Start

인밸리데이션 위젯 디버그 툴을 시작하며, 위젯이 무효화할 때 표시됩니다.

Stop

인밸리데이션 위젯 디버그 툴을 중지합니다.

SetInvalidateRootReasonFilter

SetInvalidateRootReasonFinder [None][ChildOrder][Root][ScreenPosition][Any]

SetInvalidateWidgetReasonFilter

SetInvalidateWidgetReasonFinder [None][ChildOrder][Root][ScreenPosition][Any][None][Layout][Paint][Volatility][ChildOrder][RenderTransform][Visibility][Any]

ToggleLegend

색상 범례를 표시합니다.

ToggleLogInvalidateWidget

콘솔의 무효화된 위젯 로그입니다.

ToggleWidgetNameList

무효화된 위젯의 이름을 표시합니다.

페인트 명령

각 프레임에 페인트한 위젯을 강조하는 데 사용되는 명령입니다. 변경되지 않았더라도 페인트한 위젯을 식별하는 데 유용합니다. 변동 위젯은 프레임마다 페인트한다는 점을 참고하세요.

DebuggerPaint.png

SlateDebugger.Paint

SlateDebugger.Paint

명령 설명

Enable

현재 상태에 따라 페인트 위젯 디버그 툴을 시작하고 위젯이 페인트할 때 표시되거나, 페인트 위젯 디버그 툴을 중지합니다.

Start

페인트 위젯 디버그 툴을 시작하며, 위젯이 페인트할 때 표시됩니다.

Stop

페인트 위젯 디버그 툴을 중지합니다.

LogOnce

마지막 업데이트 동안 한 번 페인트한 위젯 로그입니다.

LogWarningIfWidgetIsPaintedMoreThanOnce

위젯이 동일 프레임 내에서 두 번 이상 페인트한 경우에 대한 경고 로그입니다.

MaxNumberOfWidgetDisplayedInList

DisplayWidgetNameList 가 활성화되어 있을 때 표시되는 위젯의 최대 개수를 표시합니다.

ToggleWidgetNameList

페인트한 위젯 이름을 표시합니다.

업데이트 명령

필요한 것보다 자주 업데이트되는 위젯을 강조하는 데 사용되는 명령입니다. 위젯 업데이트는 블루프린트에서 오버라이드하거나 실행할 수 있으므로, 올바르게 설계되지 않은 위젯 코드는 퍼포먼스 저하의 원인일 때가 많습니다.

DebuggerUpdate.png

SlateDebugger.Update

SlateDebugger.Update

명령 설명

Enable

현재 상태에 따라 업데이트 위젯 디버그 툴을 시작하고 위젯 업데이트 시 표시되거나, 업데이트 위젯 디버그 툴을 중지합니다.

Start

업데이트 위젯 디버그 툴을 시작하며, 위젯 업데이트 시 표시됩니다.

Stop

업데이트 위젯 디버그 툴을 중지합니다.

SetInvalidationRootIdFilter

인밸리데이션 루트에 포함되는 위젯만 표시합니다.

SetWidgetUpdateFlagsFilter

SetWidgetUpdateFlagsFilter [None][Tick][ActiveTimer][Repaint][VolatilePaint][Any]

ToggleLegend

색상 범례를 표시합니다.

ToggleUpdateFromPaint

업데이트 플래그는 없지만 다른 위젯으로부터 부가적인 영향을 받아 업데이트되는 위젯을 표시합니다.

ToggleWidgetNameList

업데이트 위젯의 이름을 표시합니다.

언리얼 엔진의 이전 버전을 위해 작성된 페이지입니다. 현재 언리얼 엔진 5 버전을 위해 업데이트되지 않았습니다.