본문 바로가기
프로그래밍/Unreal Engine4

오브잭트 검색방법 및 하위 컴퍼넌트 검색하기.

by 눈야옹 2016. 4. 14.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
/** 한가지막 검색하는 방법*/
AStaticMeshActor* Floor = nullptr;
    
for (TActorIterator<AStaticMeshActor> ActorItr(GetWorld()); ActorItr; ++ActorItr)
{
    if (ActorItr->GetName() == "Floor_BP")
    {
        Floor = *ActorItr;
    }
}
 
/** 템플릿 함수로 개량*/
/** 검색하는 비용이 얼마나 드는지는 아직 모른다. 어쨋든 이터레이터 기반의 월드내 오브잭트를 검색하는 방법이다.*/
template<typename FindObjectType>
FORCEINLINE FindObjectType* FindObjectName(FString name)
{
    for (TActorIterator<FindObjectType> ActorItr(GetWorld()); ActorItr; ++ActorItr)
    {
        if (ActorItr->GetName() == name)
        {
            return *ActorItr;
        }
    }
    return nullptr;
}
/** 하위 컴퍼넌트 검색하기*/
MoveArea = Floor->FindComponentByClass<UBoxComponent>();
 
 
cs