오늘 한 내용
- C++ 코드카타
- 언리얼 인터페이스/델리게이트 세션 강의 수강
- Ch3 팀 프로젝트
Common UI -> UMG
원래는 Common UI 방식으로 가기로 했었으나, 튜터님의 권유로 인해 1달 프로젝트/키보드, 마우스만 사용/뼈대 복잡성 때문에 UMG로 갈아타기로 결정했다.
UMG 방식은 앞서 설명했듯, Create Widget -> AddToViewport 방식으로 위젯을 쌓는 특징을 지닌다.
클래스의 구조는 다음과 같이 세팅했다.

- PDActivatableBase : HUD, Inventory, Option 등. 화면에 보일 스크린들의 부모 클래스
- PDHudWidget : HUD 스크린을 담당하는 클래스
- PDFrontendUISubsystem : HUD는 인게임에서 계속 보여져야 하므로 PlayerController에서 직접 Add To Viewport를 하지만, 다른 요소들은 특정 액션을 통해 활성화 되므로 해당 서브시스템이 이를 감지하여 할당
AttributeBar 구현
AttributeBar의 체계도는 다음과 같다.

- PDAttributeBar : 상태 바의 부모 클래스. 이는 HUD의 부속품이므로 UserWidget을 상속
- PDLinearBar : 선형 바를 표현하는 클래스
- PDCircularBar : 원형 바를 표현하는 클래스
- PDBodyPartHealthGroupWidget : 몸의 Parts들을 묶어놓은 클래스
우리 조에서 구현할 캐릭터의 스탯은 부위 별 HP, Stamina/Hunger/Thirst를 지니기 때문에 부위 별 HP는 LinearBar로, 나머지는 CircularBar로 구현할 예정이다.
내부 기능 구현이 일부 되어있지만, 아직 제대로 활용하질 않아서 Stat을 표기할 때 기능들을 작성할 예정이다.