Unreal Engine/Memo

캐스케이딩 캐스트 체인 문제와 사이즈 맵

J00n 2026. 2. 20. 14:36

Cascading(계단식) Cast Chain은 왜 문제일까?

1. 리소스 로드 & 메모리 사용 증가

캐스트가 “타입 확인”만 하는 것처럼 보여도, 블루프린트 클래스로의 캐스트는 그 블루프린트 에셋에 대한 하드 레퍼런스를 만들 수 있다.

하드 레퍼런스는 A가 로드될 때 A가 의존하는 것들이 함께 메모리에 로드되고, 그 의존 대상의 의존 대상도 연쇄적으로 로드되는 구조라서 비용이 대폭 증가할 수 있다.

 

에디터에서 사이즈 맵을 통해 캐스트가 메모리에 미치는 영향을 확인할 수 있다. 

또한 SpawnActor, GetAllActorsOfClass의 Class 핀에 블루프린트 타입 변수를 넣었을 때, 마찬가지로 하드 래퍼런스를 만들 수 있다.

 

2. 잠재적 실패 처리 대기 시간

또한 잠재적으로 캐스트가 실패했을때의 비용도 고려해야한다.

3. 유연성 부족

접근법 자체의 유연성이 없다는 점. 만약에 위 예시에서 새로운 무기를 추가할 시 체인에 또 캐스트를 추가해야 한다.

 

Cascading Cast Chain 문제 해결법

인터페이스 이용하여 클래스 타입 식별 없이 두 액터가 통신할 수 있도록 한다.

또는 블루프린트 클래스 대신 네이티브 C++ 클래스로 캐스팅 한다.