오늘
[프로젝트] C++로 구현하는 언리얼 엔진 5 기반 슈터 게임 프로젝트
7/6 회의 정리



UserWidget 수정



- 매 프레임마다 게임 상태 변수를 확인하게 된다면, 불필요한 연산이 반복되어 CPU 성능 저하 유발
- 이벤트 기반 시스템을 적용하여, 데이터가 실제로 변화하는 시점(AddKill 발생 시)에만 UI 갱신 로직을 수행하는 함수가 필요함
- 불필요한 호출을 제거하여 연산 비용을 최적화 작업
델리게이트(Delegate)
특정 이벤트 발생 시 미리 등록된 함수들을 호출하는 콜백(Callback) 시스템
객체 간 직접적인 참조 없이 이벤트를 전파하여, 결합도(Coupling)를 낮추고 유지보수성을 향상
작동 방식
선언: DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam (매크로를 통해 이벤트 규격 정의)
수신 객체 → AddDynamic을 통해 이벤트를 바인딩
발신 객체 → Broadcast를 호출하여 데이터 전달
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam
Dynamic: 언리얼의 리플렉션 시스템을 사용하여 블루프린트에서 제어 가능
Multicast: 하나의 이벤트에 여러 함수를 연결 가능
OneParam: 이벤트 발생 시 전달할 인자가 1개임을 명시
BlueprintAssignable
해당 델리게이트를 블루프린트에서 이벤트 노드로 사용할 수 있도록 노출함
C++에서 정의된 로직을 블루프린트에서 시각적으로 확인하고 바인딩할 수 있게 하여 확장성을 제공
NativeConstruct()
UUserWidget의 생명주기 함수로, 위젯이 생성되고 레이아웃이 초기화되는 시점에 호출됨
델리게이트 바인딩 등 위젯의 초기화 로직을 수행하기에 가장 적절한 오버라이드 지점
회고
팀원과 협업하는 과정이 쉽진 않다. 그래도 서로 조금씩 맞춰 나아가며 진행이 되고 있으니 기간 안에 완성을 반드시 할 것이다.
'본 캠프 TIL' 카테고리의 다른 글
| 26.07.08 TIL / 팀플 슈터 게임 6일차 (0) | 2026.07.08 |
|---|---|
| 26.07.07 TIL / 팀플 슈터 게임 5일차 (0) | 2026.07.07 |
| 26.07.03 TIL / 팀플 슈터 게임 3일차, GitHub Desktop 오류 해결 (0) | 2026.07.03 |
| 26.07.02 TIL / 팀플 슈터 게임 2일차, TA 강의 정리 (0) | 2026.07.02 |
| 26.07.01 TIL / 팀플 슈터 게임 1일차, Git 특강 (0) | 2026.07.01 |