- 개요
메뉴 엔트리에 새롭게 추가한 기능을 표시하는 아이콘을 사용한다
아이콘을 사용하는 방법은 다음과 같이 구성되어 있다
- 1) 아이콘의 원본 이미지를 Resources 폴더에 저장
- 2) 아이콘을 StartupModules 함수에서 등록
- 3) 등록한 아이콘을 커스텀 MenuEntry에 배치
아이콘을 사용하기 위해서는 SlateStyleSet 슬레이트 위젯을 사용해야 한다
RegisterSlateStyle 함수를 호출하여 SlateStyleSet 위젯을 등록하고 내부의 아이콘을 사용한다
등록하기 이전에 SlateStyleSet 위젯을 설정하는 과정은 다음과 같다
- 1) StyleSet의 이름을 설정
- 2) 커스텀된 StyleSet 생성
- 3) 디렉토리로부터 아이콘 로딩
- 4) 아이콘의 이름 설정
- 5) 아이콘의 크기 설정
- C++ 사이드
1) CoreManager.build.cs 파일

Projects 모듈을 추가하여 특정 플러그인(CoreManager)의 경로를 탐색할 수 있도록 설정한다
2) CoreManager 모듈 - CoreManagerStyle 클래스

SlateStyleSet을 생성하기 위한 CoreManagerStyle 클래스를 위와 같이 생성한다
4개의 멤버함수와 2개의 멤버변수로 구성되어 있다
각각 다음과 같다
- InitializeIcons 함수 : RegisterSlateStyle 함수를 호출하여 SlateStyleSet을 등록하는 함수
- ShutDown 함수 : CoreManager 모듈이 종료될 때 생성된 SlateStyleSet을 등록해제하는 함수
- CreateSlateStyleSet 함수 : SlateStyleSet를 참조하고 있는 레퍼런스를 생성하는 함수
- GetStyleSetName 함수 : SlateStyleSet의 이름인 StyleSetName 멤버변수를 반환하는 함수
- CreatedSlateStyleSet 멤버변수 : SlateStyleSet을 참조하는 포인터
- StyleSetName 멤버변수 : SlateStyleSet의 이름

cpp 파일에서 2개의 static 멤버변수를 초기화한다

InitializeIcons 함수의 로직은 위와 같다
CreatedSlateStyleSet 멤버변수가 유효하지 않다면 CreateSlateStyleSet 함수를 호출하여 값을 설정하고
RegisterSlateStyle 함수에 인자로 넘겨주어 SlateStyleSet을 등록한다

CreateSlateStyleSet 함수의 로직은 위와 같다
- 생성할 SlateStyleSet의 이름을 설정 + 생성
- 아이콘 이미지를 로딩할 디렉토리 경로 설정
- StyleSet에 포함될 아이콘을 설정 - 아이콘의 이미지 크기와 경로를 설정
- 설정된 SlateStyleSet 반환

ShutDown 함수의 로직은 위와 같다
CreatedSlateStyleSet 멤버변수가 유효하다면 UnRegisterSlateStyle 함수를 호출하고
인자로 넘겨주어 SlateStyleSet을 등록해제하고 멤버변수를 초기화한다
3) CoreManager 모듈 - CoreManager 클래스

StartupModule 함수와 ShutdownModule 함수에 각각 로직을 추가하여
CoreManager 모듈이 등록 + 등록해제되면 SlateStyleSet도 등록 + 등록해제한다

AddContentBrowserMenuEntry 함수에 위와 같이 로직을 추가한다
3개의 MenuEntry에 등록한 StyleSet을 사용하여 아이콘을 설정한다

RegisterAdvanceDeletionTab 함수에 위와 같이 로직을 추가한다
MenuEntry를 눌러서 팝업된 EditorTab에도 등록한 StyleSet을 사용하여 아이콘을 설정한다
- 최종 수행 결과


'언리얼 엔진 > 언리얼 엔진 커스텀 에디터' 카테고리의 다른 글
| 코드를 통한 머티리얼 생성 - 2) 애셋을 검증하는 기능 추가 (0) | 2026.02.27 |
|---|---|
| 코드를 통한 머티리얼 생성 - 1) EditorUtilityWidget의 사용 (0) | 2026.02.27 |
| 커스텀 에디터 아이콘 - 1) static 키워드 (0) | 2026.02.26 |
| Slate Widget - 최종) EditorTab과 ContentBrowser 동기화 (0) | 2026.02.22 |
| Slate Widget - 8) 콤보 박스를 사용한 애셋 표현 방식 설정 (0) | 2026.02.21 |