diff --git a/Source/PrefabricatorRuntime/Private/Asset/PrefabricatorAsset.cpp b/Source/PrefabricatorRuntime/Private/Asset/PrefabricatorAsset.cpp index f7cfd0aa..d229b82d 100644 --- a/Source/PrefabricatorRuntime/Private/Asset/PrefabricatorAsset.cpp +++ b/Source/PrefabricatorRuntime/Private/Asset/PrefabricatorAsset.cpp @@ -32,8 +32,10 @@ FVector FPrefabricatorAssetUtils::FindPivot(const TArray& InActors) FBox ActorBounds = FPrefabTools::GetPrefabBounds(Actor, false); Bounds += ActorBounds; } + + AActor* FirstActor = InActors[0]; - switch (GetDefault< UPrefabricatorSettings>()->PivotPosition) + switch (GetDefault()->PivotPosition) { case EPrefabricatorPivotPosition::ExtremeLeft: Pivot = Bounds.GetCenter() - Bounds.GetExtent(); @@ -44,6 +46,9 @@ FVector FPrefabricatorAssetUtils::FindPivot(const TArray& InActors) case EPrefabricatorPivotPosition::Center: Pivot = Bounds.GetCenter(); break; + case EPrefabricatorPivotPosition::FirstActor: + Pivot = FirstActor->GetActorLocation(); + return Pivot; default:; } Pivot.Z = Bounds.Min.Z; diff --git a/Source/PrefabricatorRuntime/Public/PrefabricatorSettings.h b/Source/PrefabricatorRuntime/Public/PrefabricatorSettings.h index bd5ccbc5..0c11cd52 100644 --- a/Source/PrefabricatorRuntime/Public/PrefabricatorSettings.h +++ b/Source/PrefabricatorRuntime/Public/PrefabricatorSettings.h @@ -11,7 +11,8 @@ enum class EPrefabricatorPivotPosition : uint8 { ExtremeLeft, ExtremeRight, - Center + Center, + FirstActor }; /**