KoreanFoodie's Study
[언리얼] 특정 액터에 Attached 된 액터 삭제하기 본문
AttachedActors vs ChildActors
만약 다음과 같이 부모 액터에 부착된 액터들을 삭제하려고 하면 어떻게 해야 할까?
만약 현재 액터에 자식으로 설정된 ActorComponent 들의 경우, 다음과 같은 코드로 조회할 수 있다.
TArray< AActor* > tempChildActors;
AActor* owner = GetOwner();
// SomeChildActor->SetOwner(this); 가 어디선가 실행되었다고 가정
owner->GetAllChildActors( tempChildActors, true );
uint32 count = tempChildActors.Num();
하지만 위와 같은 경우나, 무기를 캐릭터의 소켓에 부착 (AttachToComponent) 하는 경우, 자식인 액터 컴포넌트가 아니라, 그냥 소켓에 붙은 별도의 액터이다. 이 경우, 다음과 GetAttachedActors 를 활용한다.
TArray<AActor*> AttachedActors;
GetAttachedActors(AttachedActors);
for (auto* Attached : AttachedActors)
{
Attached->Destroy();
}
위의 코드를 사용하면 Owner 에 부착된 모든 액터들을 조회해 삭제할 수 있다!
'Game Dev > Unreal C++ : Dev Log' 카테고리의 다른 글
[언리얼] 플레이어 캐릭터 움직이기 + 시점 변경 간단 설정 (0) | 2022.05.19 |
---|---|
[언리얼] UPoseableMeshComponent 는 무엇일까? (1) | 2022.04.23 |
[언리얼] Helper Function : 오브젝트 생성 및 애셋 불러오기 (0) | 2022.04.19 |
[언리얼] Helper Function - 로그 (Log) 2 : 화면에 출력하기 (0) | 2022.04.19 |
[언리얼] Helper Function - 로그 (Log) 1 : 콘솔에 출력하기 (0) | 2022.04.19 |
Comments