11#include "Engine/Selection.h"
12#include "ScopedTransaction.h"
13#include "Algo/Unique.h"
18int32 AListActorManager::GatherSelectedItem(TArray<AActor*>& Out)
const
24 TArray<AActor*> Selected;
25 GEditor->GetSelectedActors()->GetSelectedObjects<AActor>(Selected);
27 for (AActor* A : Selected)
38 Out.Sort([](
const AActor& L,
const AActor& R){
39 return L.GetFName().LexicalLess(R.GetFName());
42 Out.SetNum(Algo::Unique(Out));
48void AListActorManager::AssignInternal(
const bool bAppend)
50 TArray<AActor*> Picked;
51 const int32 Count = GatherSelectedItem(Picked);
55 const FScopedTransaction Tx(NSLOCTEXT(
"ListActorManager",
"AssignFromSelection",
"Assign Items From Selection"));
63 for (AActor* A : Picked)
71 if (UPackage* Pkg = GetOutermost())
73 Pkg->SetDirtyFlag(
true);
79void AListActorManager::AssignItemReplace()
82 AssignInternal(
false);
87void AListActorManager::AssignItemAppend()
96void AListActorManager::SortByNameAsc()
99 const FScopedTransaction Tx(
100 NSLOCTEXT(
"ListActorManager",
"SortByNameAsc",
"Sort ArrayActors by Name Asc")
104 ArrayActors.Sort([](
const AActor& L,
const AActor& R) {
105 return L.GetActorLabel() < R.GetActorLabel();
108 if (UPackage* Pkg = GetOutermost())
110 Pkg->SetDirtyFlag(
true);
116void AListActorManager::SortByNameDesc()
119 const FScopedTransaction Tx(
120 NSLOCTEXT(
"ListActorManager",
"SortByNameDesc",
"Sort ArrayActors by Name Desc")
124 ArrayActors.Sort([](
const AActor& L,
const AActor& R) {
125 return L.GetActorLabel() > R.GetActorLabel();
128 if (UPackage* Pkg = GetOutermost())
130 Pkg->SetDirtyFlag(
true);
AListActorManager 클래스를 선언합니다.
TArray< AActor * > ArrayActors
수집된 액터 목록.
TSubclassOf< AActor > ClassFilter
허용할 액터 클래스 필터.