editor 3

[UE4][Editor]맵 이벤트

글을 쓰는 목적 에디터에서 사용하는 모든 맵에서 액터를 변경한뒤 저장해야 하는 경우가 있었다. 이 문제를 해결하면서 맵 이벤트를 기록하기 위해 글을 쓴다. 작업 환경 UE4.26 맵 이벤트 델기게이트 형식 델리게이트 이름 설명 DECLARE_MULTICAST_DELEGATE_OneParam(FOnMapChanged, uint32) FEditorDelegates::MapChange 맵이 변경되었을 때 호출 DECLARE_MULTICAST_DELEGATE_TwoParams(FOnMapOpened, const FString& /* Filename */, bool /*bAsTemplate*/) FEditorDelegates::OnMapOpened 맵이 열릴 때 호출되어 맵 이름 및 템플릿인지 여부 DECLARE..

UE4 2023.01.17

[UE4][Editor] Asset 저장

글을 쓰는 목적 Asset을 저장해야하는 경우가 있었다. 에디터 툴 작업하면서 생각보다 많이 쓰는 기능이라 기억하기 위해 글을 쓴다. 작업 환경 UE4.26 Asset 저장 1. UEditorUtilityLibrary::GetSelectedAssets를 통해 선택한 에셋들을 가져온다. 2. 선택된 에셋들을 MakrPackageDirty를 통해 수정한 상태로 변경 3. FEditorFileUtils::PromptForCheckoutAndSave 를 통해 에셋 저장 TArray selectedAssetArray = UEditorUtilityLibrary::GetSelectedAssets(); TArray packagesToSave; for(UObject* asset : selectedAssetArray) {..

UE4 2022.07.25

UE4 아웃 라이너에서 Actor 선택하기 C++

글을 쓰는 목적 아웃 라이너에서 액터를 선택하는 방법을 기억하기 위해 글을 쓴다. 작업 환경 UE4.26 코드에서 아웃라이너 선택하기 에디터를 활용하다 보니 아웃라이너 선택 기능이 필요했다. 위젯 리플렉터로 아웃라이너 코드를 살피다보면 SSceneOutiner 코드에서 아웃라이너의 기능을 처리 함을 알 수 있다. 아래 코드 처럼 아웃라이너에서 액터를 선택하는 코드가 나와있다. if ( bChanged ) { const FScopedTransaction Transaction( NSLOCTEXT("UnrealEd", "ClickingOnActors", "Clicking on Actors"), !bAnyInPIE ); GEditor->GetSelectedActors()->Modify(); // Clear th..

UE4 2022.04.12