From ceb680fa46354fe107c3a57989eda06f0dc921f9 Mon Sep 17 00:00:00 2001 From: devhyper <57877914+devhyper@users.noreply.github.com> Date: Fri, 18 Oct 2024 21:58:06 -0700 Subject: [PATCH] Add FirstActor pivot setting --- .../Private/Asset/PrefabricatorAsset.cpp | 7 ++++++- Source/PrefabricatorRuntime/Public/PrefabricatorSettings.h | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) 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 }; /**