언리얼엔진5 공부

[TIL] 언리얼 엔진 5 UI 설계 - 상속 vs 인터페이스

Client Side 2025. 12. 26. 19:12

1. 캐릭터별 스킬창 생성 전략

기존 방식: 모든 위젯을 미리 생성 후 숨기기 (메모리 낭비)

 

개선 방식: 캐릭터 선택 시점에 필요한 위젯만 `CreateWidget`으로 동적 생성 (효율적 자원 관리)

 

2. 클래스 상속(Base Class)을 선택한 이유

공통 변수 관리: 모든 캐릭터 위젯이 사용하는 `SkillIcon`, `CooldownText` 등을 부모 클래스에서 `meta = (BindWidget)`으로 한 번만 선언하여 자식들이 공유 가능.

 

로직 중복 제거: 쿨타임 계산 로직(Timer)을 부모에 작성하면 캐릭터가 추가되어도 새로 짤 필요가 없음.

 

다형성 활용: `UAFOSkillWidgetBase*` 포인터 하나로 어떤 캐릭터의 스킬창이든 제어 가능.

 

3. 인터페이스(Interface)가 필요한 시점

• 스킬창뿐만 아니라 아이템 창, 상태창 등 서로 다른 계층의 위젯들이 동일한 '애니메이션 재생' 기능을 가져야 할 때 유용.

 

4. 포인트

• "Is-A"와 "Has-A" 관계를 명확히 이해하고, 메모리 최적화를 위해 동적 생성을 선택했다는 논리가 중요함.