728x90
반응형
- 개요
이전에 만든 EditorUtilityWidget 클래스에 애셋을 검증하는 기능을 추가한다
추가하는 기능은 다음과 같다
- 선택한 애셋들이 Texture2D 애셋인지 확인
- 동일한 이름을 가진 머티리얼이 이미 존재하는지 확인
- C++ 사이드
1) CoreManager 모듈 - QuickMaterialCreationWidget 클래스

QuickMaterialCreationWidget 클래스를 위와 같이 수정한다
- bCustomMaterialName 멤버변수 : EditAnywhere 속성과 BlueprintReadWrite 속성을 부여
- 위젯 블루프린트에서 값을 변경
- ProcessSelectedData 함수 : 선택한 애셋들이 Texture2D 애셋인지 확인하는 함수
- CheckIsNameUsed 함수 :동일한 이름을 가진 머티리얼이 이미 존재하는지 확인하는 함수

ProcessSelectedData 함수의 로직은 위와 같다
SelectedDataToProccess 인자를 순회하면서 다음의 로직을 수행한다
- 순회중인 AssetData를 가져와 SelectedAsset 변수에 저장
- SelectedAsset을 Texture2D 변수로 캐스팅
- 캐스팅에 실패하면 False 반환
- 인자로 받은 OutSelectedTexturePackagePath에 순회중인 AssetData의 PackagePath를 저장
- 머티리얼 이름을 따로 지정하지 않으면 Texture2D의 "T_" 접두사를 제거하고 머티리얼의 "M_" 접두사를 수식
- 수식하여 수정한 결과물을 MaterialName 멤버변수에 저장
- 순회 종료후에 True 반환

CheckIsNameUsed 함수의 로직은 위와 같다
인자로 받은 FolderPathToCheck를 ListAssets 함수에 넘겨주어 애셋의 DirectoryPath를 가져온다
이후 가져온 애셋의 DirectoryPath를 순회하면서 다음의 로직을 진행한다
- 순회중인 DirectoryPath를 GetBaseFilename 함수에 넘겨주어 애셋의 이름 저장
- 저장한 애셋의 이름을 MaterialNameToCheck 인자와 비교
- 비교한 결과가 True라면 디버그 메세지를 띄우고 + True 반환
- 순회 종료후에 False 반환

CreateMaterialFromSelectedTextures 함수를 위와 같이 수정한다
- GetSelectedAssetData 함수를 호출하여 선택한 애셋들의 AssetData를 저장
- 선택한 Texture2D 애셋들을 저장할 TArray + 선택한 애셋들의 폴더 경로를 저장할 FString 생성
- ProcessSelectedData 함수에 인자를 넘겨주어 False가 반환되었다면 얼리 리턴
- False 반환 : 선택한 애셋들이 전부 Texture2D 애셋이 아님을 의미
- CheckIsNameUsed 함수에 인자를 넘겨주어 True가 반환되었다면 얼리 리턴
- True 반환 : 동일한 이름을 가진 머티리얼 애셋이 이미 존재함을 의미
- 이후 폴더 경로의 FString을 화면에 출력
- 최종 실행 결과

728x90
반응형
'언리얼 엔진 > 언리얼 엔진 커스텀 에디터' 카테고리의 다른 글
| 코드를 통한 머티리얼 생성 - 4) 생성한 머티리얼에 BaseColor + Metalic 효과 추가 (0) | 2026.03.02 |
|---|---|
| 코드를 통한 머티리얼 생성 - 3) 코드를 통한 머티리얼의 생성 (0) | 2026.02.28 |
| 코드를 통한 머티리얼 생성 - 1) EditorUtilityWidget의 사용 (0) | 2026.02.27 |
| 커스텀 에디터 아이콘 - 최종) 아이콘의 사용 (0) | 2026.02.26 |
| 커스텀 에디터 아이콘 - 1) static 키워드 (0) | 2026.02.26 |