UNREAL C++ · UMG
C++ 위젯 계약 분리
위젯 블루프린트는 배치와 스타일을 맡고, C++ 클래스는 타입 계약, 데이터 갱신 함수, 수명 주기 초기화를 담당하도록 나누면 유지보수가 쉬워집니다.
바인딩 조건
BindWidget
이름 일치
UPROPERTY 이름과 디자이너의 위젯 이름이 정확히 같아야 합니다.
Is Variable
참조할 자식 위젯은 블루프린트에서 변수로 노출되어야 합니다.
역할 경계
계약
Widget Blueprint
Canvas, TextBlock, ProgressBar 같은 시각 구조를 배치합니다.
C++ Base Class
UpdateHealth, SetLabel 같은 공개 함수로 위젯 내부 변수와 바인딩을 C++ 호출 규약에 맞춥니다.
NativeConstruct
바인딩 포인터를 검사하고 초기 표시 값을 맞춥니다.
Blueprint Events
효과음, 애니메이션, 세부 연출은 디자이너가 조정합니다.
실패 방지
guard
Null 검사
바인딩 실패가 에디터 설정 문제인지 코드 문제인지 로그로 분리합니다.
직접 접근 제한
외부 코드는 자식 위젯 포인터보다 공개 함수를 통해 UI를 바꿉니다.
디자이너 자유도
레이아웃 교체가 C++ 함수 계약을 깨지 않도록 최소 필드만 묶습니다.