생성 기준
SpawnActor<T>()
런타임 이벤트라면 클래스, 위치, 충돌 처리 옵션을 함께 넘긴다.
SpawnActor로 만든 액터도, 에디터에 배치한 액터도 결국 안전한 참조, 필요한 Tick, 명확한 Destroy 시점으로 관리된다.
SpawnActor<T>()
런타임 이벤트라면 클래스, 위치, 충돌 처리 옵션을 함께 넘긴다.
UPROPERTY / Tags
반복 검색보다 직접 참조와 이벤트 연결을 우선한다.
Tick Enabled
매 프레임 필요하지 않으면 Tick을 끄고 이벤트로 깨운다.
Destroy()
파괴 후 포인터 접근을 막고 EndPlay에서 정리한다.
에디터에서 할당하거나 스폰 직후 저장한다. 성능과 명확성이 가장 좋다.
PlayerStart, TargetEnemy처럼 그룹 의미가 분명할 때만 사용한다.
월드 전체 순회가 필요하므로 BeginPlay 초기화나 드문 검사에 제한한다.
Destroy 이후에는 nullptr, IsValid, 약한 참조 상태를 확인한 뒤 접근한다.
총알과 이펙트처럼 짧게 반복 생성되는 액터는 풀링 비용을 비교한다.
액터가 많아질수록 검색과 Tick이 비용이 된다. 생성 시점에 참조를 정리하고, 필요할 때만 업데이트하며, 제거 후 접근을 막는 흐름을 습관화한다.