본문 바로가기
Unreal Engine4 or 5/코드

현재 레벨에서의 컴퍼넌트 찾는 방법. FindObject

by 눈야옹 2016. 4. 20.
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
 
    //현재 레벨의 모든 Actor을 받아온다.
    TTransArray<AActor*> actors =GetWorld()->GetCurrentLevel()->Actors;
    //그중 모든 Boxcomponent만 받아온다.
    TArray<UBoxComponent*> boxComps;
    for (int i = 0; i < actors.Num(); ++i)
    {        
        if (actors[i]->FindComponentByClass<UBoxComponent>())
        {
            boxComps.Add(actors[i]->FindComponentByClass<UBoxComponent>());
        }        
    }
 
    // 모든 컴퍼넌트 중 해당 tag를 가진 컴퍼넌트 리턴.
    for (int i = 0; i < boxComps.Num(); ++i)
    {
        for (int j = 0; j < boxComps[i]->ComponentTags.Num(); ++j)
        {
            if (boxComps[i]->ComponentTags[j].IsEqual("StageFloorBoundBox"))
            {
                //실행 
                GEngine->AddOnScreenDebugMessage(-1100.0f, FColor::Blue, boxComps[i]->GetName());
            }
        }
    }
cs