이번에 우리는 언리얼 엔진 에디터를 커스터마이징해 새로운 탭을 만들고, 탭을 누르면 어떠한 창이 나타나게 하여 우리가 추가해놓은 Slate 탭이 나타나게 할 것입니다.
이를 위해선 Slate에 대해 알아야합니다.
Slate는 이 곳에 설명해 두었습니다. (추후 추가 예정 )
우리는 언리얼 엔진 에디터를 커스터마이징 해야 하기 때문에, 엔진이 시작과 동시에 기능이 붙어야 한다는 것을 알아둬야 합니다.
엔진이 시작됨과 동시에, 즉 StartupModule이 호출될 때 에디터에 추가 작업을 요청합니다.
이는 FGlobalTabmanager를 통해서 요청합니다.
FOnSpawnTab 객체를 확인해보면, Delegate임을 알 수 있습니다. 이에 맞춰서 함수를 하나 만들어 바인딩 해주어야 합니다.
이제 탭 생성이 끝났으니, 탭이 눌러졌을 때 어떠한 창이 떠야 하는지를 알려주어야 합니다.
다음과 같이 작성합니다.
여기서 알아두어야 할 것은 SNew 매크로와 ETabRole입니다.
SNew는 괄호안에 들어가는 새로운 Slate 객체를 만들겠다는 뜻입니다.
Slate 객체는 SNew 또는 SAssignNew를 통해서만 만들어져야 합니다.
ETabRole은 다음과 같습니다.
- MajorTab : 탭의 최상위 레벨이며 모드 패널이나 월드 아웃라이너 같은 에디터UI의 최상위 섹션입니다. MatorTab에는 여러 개의 PanelTab이 포함될 수 있습니다.
- PanelTab : 디테일 패널이나 콘텐츠 브라우저 같은 콘텐츠 패널이 포함된 탭입니다. PanelTab은 MajorTab, PanelTab, NomadTab이 포함될 수 있습니다.
- NomadTab : MajorTab / PanelTab 에 맞지 않는 콘텐츠를 보관하는데 사용하는 독립적인 탭입니다. 에셋이나 다른 유형의 콘텐츠에 대한 에디터를 보유하는데 사용할 수 있습니다.
- DocumentTab : Material이나 Blueprint같은 특정 에셋이나 리소스에 대한 문서를 표시하는데 사용되는 PanelTab 유형입니다. 일반적으로 에셋 / 리소스 당 단일 인스턴스를 가지며 에디터 UI에서 붙이거나 (도킹하거나) 뗄 수 있습니다.
이제 다 끝났고, 실제로 버튼이 눌렸을 때 탭이 나타나게 하면 됩니다.
이를 통해 우리가 만든 새로운 NomadTab이 생성되게 됩니다.
'UnrealEngine > Editor' 카테고리의 다른 글
[Unreal Editor] 3. EditorAssetLibrary, EditorUtilityLibrary (1) | 2024.01.09 |
---|---|
[Unreal Editor] 2. Asset Action Utility (1) | 2023.12.26 |
[Unreal Editor] 1. Plugins (1) | 2023.12.14 |