UE5保存UPackage
可以使用此方法将任何表示为 UPackage 中的资产的 UObject 保存下来:
bool SaveToAsset(UObject* ObjectToSave)
{
UPackage* Package = ObjectToSave->GetPackage();
const FString PackageName = Package->GetName();
const FString PackageFileName = FPackageName::LongPackageNameToFilename(PackageName, FPackageName::GetAssetPackageExtension());
FSavePackageArgs SaveArgs;
// This is specified just for example
{
SaveArgs.TopLevelFlags = RF_Public | RF_Standalone;
SaveArgs.SaveFlags = SAVE_NoError;
}
const bool bSucceeded = UPackage::SavePackage(Package, nullptr, *PackageFileName, SaveArgs);
if (!bSucceeded)
{
UE_LOG(LogTemp, Error, TEXT("Package '%s' wasn't saved!"), *PackageName)
return false;
}
UE_LOG(LogTemp, Warning, TEXT("Package '%s' was successfully saved"), *PackageName)
return true;
}
原文链接:How to save UObject that is represented as an asset in Unreal Engine
BimAnt翻译整理,转载请标明出处