[Unreal Engine] 스크립트로 신규 파일 생성 및 저장하기

Hongyeol Kim·2022년 2월 15일
0

언리얼 엔진

목록 보기
9/9
post-thumbnail

신규 파일 생성 및 저장

FString assetName = "NewFile";
FString packageName = FString(TEXT("/Game/")) + assetName;

UPackage* package = CreatePackage(NULL, *packageName);
package->FullyLoad();

UDataAsset* newAsset = NewObject<UDataAsset>(package, *assetName, RF_Public | RF_Standalone | RF_MarkAsRootSet);
package->MarkPackageDirty();
FAssetRegistryModule::AssetCreated(newAsset);

FString packageFileName = FPackageName::LongPackageNameTofilename(packageName, FPackageName::GetAssetPackageExtension());
UPackage::SavePackage(package, newAsset, EObjectFlags::RF_Public | EObjectFlags::RF_Standalone, *packageFileName, GError, nullptr, true, true, SAVE_NoError);

TArray<UObject*> objectsToSync;
objectsToSync.Add(newAsset);
GEditor->SyncBrowserToObjects(objectsToSync);

수정한 기존 파일 저장

fileToSave->MarkPackageDirty();
UPackage* fileToSavePackage = Cast<UPackage>(fileToSave->GetOuter());

FString ExisitingFilename;
bool packageExists = FPackageName::DoesPackageExist(fileToSavePackage->GetName(), nullptr, &ExistingFilename);

if(packageExists)
{
	bool isSaveSuccess = UPackage::SavePackage(fileToSavePackage, NULL, EObjectFlags::RF_Public | EObjectFlags::RF_Standalone, *ExisitingFilename, GError, nullptr, true, true, SAVE_KeepGUID);
    if(!isSaveSucce)
    {
    	UE_LOG(LogTemp, Error, TEXT("Saving failed."));
        return;
    }
}
profile
Game Engine/Client Programmer

0개의 댓글