midas+son의 크리에이티브(creative) 이야기

https://wiki.unrealengine.com/Iterators:_Object_%26_Actor_Iterators,_Optional_Class_Scope_For_Faster_Search

참고 사이트


UWorld* myWorld = nullptr;

UDataSingleton* dataSingleton = Cast<UDataSingleton>(GEngine->GameSingleton);

if (dataSingleton)

{

AGameMode* gameMode = dataSingleton->gameMode;

if (gameMode)

{

myWorld = gameMode->GetWorld();

}

}


if (myWorld == nullptr) return;


for (TActorIterator<AItemActor> ActorItr(myWorld); ActorItr; ++ActorItr)

{

AItemActor *Mesh = *ActorItr;

if (Mesh && Mesh->inventoryIndex != -1)

{

this->ApplyItemInInventory(Mesh, Mesh->inventoryIndex);

}

}

UWorld를 받아와서 TActorIterator<액터클래스명>을 받아와 반복문을 돌리는 형태이다.

현재 레벨의 World에서 Spwan된 모든 Actor를 검사하여 <AItemActor>로 캐스팅 되는 것을 찾아

이터레이터 형식으로 변환된다고 생각된다.(내부 코드를 보지 않아 정확하진 않다.)