프로그래밍
🎮 언리얼 엔진5에서 특정 클래스의 액터 찾기 (C++ )
세남매 아빠
2025. 5. 9. 15:48
728x90
728x90
언리얼 엔진5(UE5)에서 특정 클래스의 액터(Actor)를 찾는 방법을 소개해드리려고 합니다.
게임 개발을 하다 보면, 월드 내에 존재하는 특정 클래스의 액터를 탐색하거나 조작해야 하는 경우가 많죠.
이번 포스팅에서는 C++ 코드로 해당 기능을 구현하는 방법을 알아보겠습니다.
✅ C++ 코드로 클래스 기반 액터 찾기
언리얼 엔진에서는 UGameplayStatics::GetAllActorsOfClass 또는 TActorIterator를 이용해
월드(World) 내 특정 클래스에 해당하는 모든 액터를 가져올 수 있습니다.
📌 예제 코드
// AMyActor는 찾고자 하는 액터 클래스입니다.
void AMyActorFinder::FindMyActor(UWorld* World)
{
if (!World) return;
TArray<AActor*> FoundActors;
UGameplayStatics::GetAllActorsOfClass(World, AMyActor::StaticClass(), FoundActors);
for (AActor* Actor : FoundActors)
{
AMyActor* MyActor = Cast<AMyActor>(Actor);
if (MyActor)
{
// 원하는 로직 실행
UE_LOG(LogTemp, Warning, TEXT("찾은 액터: %s"), *MyActor->GetName());
}
}
}
🛠️ 코드 설명
항목
|
설명
|
UGameplayStatics::GetAllActorsOfClass
|
월드에서 특정 클래스의 모든 액터를 검색합니다.
|
TArray<AActor*> FoundActors
|
찾은 액터들을 저장할 배열입니다.
|
Cast<AMyActor>(Actor)
|
원하는 클래스 타입으로 캐스팅하여 작업할 수 있습니다.
|
Tip!
액터가 너무 많다면 Tag, 이름, 위치 등을 활용해 필터링하는 것도 좋은 방법입니다.
🚀 하나만 찾고 싶을 땐?
다음과 같이 TActorIterator를 사용하면, 가장 처음 찾은 액터 하나만 가져올 수 있습니다.
AActor* FoundActor = nullptr;
for (TActorIterator<AMyActor> It(World); It; ++It)
{
FoundActor = *It;
break;
}
✍️ 마무리
위 방법들을 활용하면 월드 내에서 원하는 액터를 효율적으로 탐색하고 사용할 수 있습니다.
언리얼의 C++ API는 강력하면서도 유연해서, 익숙해지면 정말 많은 걸 할 수 있어요!
728x90
반응형