오늘 목표
- 락온
- 피격판정
- 구르기
EnemyBase - (Humanoid)Boss

락온을 다 구현하고 나니 락온 조건 중에 '살아있는' '유효한 적'이 있어서 테스트하기가 어려웠음
그래서 어차피 만들어야하는거 만들었음
EnemyBase에 추가한 것:
- BeginPlay에 체력 초기화
- 변수로
bShowBossHealthBar,EnemyName추가해서 자식한테 물려주기
그런 다음 Enemies/Humanoid/에 BP_Genichiro 추가
- 기본 스켈레탈메시 추가
- 3인칭 견본 프로젝트에서 Damage관련 로직 따오기 + BPC_Health랑 연결해주기
- 적 피통이랑 이름은 소울라이크 문법을 계승해 보스일 때만 노출하고, 노출 시에 캡쳐처럼 화면 중앙 하단에 띄워주기로 함
이걸 위해선
UI_BossHealthBar(UserWidget),BP_PlayerController두 군데서 관리해야함
UI_BossHealthBar
- Vertical Box로 위치 잡아주고 BossName Text박스랑 HP용 ProgressBar 추가
- 변수로 필요한 것: 적의 최대체력, 현재체력, 이름
- BPC_Health 저장용 변수 TargetHealthComp, DisplayName 생성
- 이 위젯은 적이 들고있지 않고 PlayerController가 들고 있으나, HP 변경은 적이 맨처음 알려줘야함
- 함수로 직접 현재체력과 최대체력을 props drilling하기보다 이벤트로 호출만 이어주고 값 변경 구독은 TargetHealthComp에서 직접 가져다 쓰기
- 이 위젯 등록은 각 적 BP BeginPlay에서 걸어주기
BP_PlayerController
- 로드되면 유효성 검사하고 뷰포트에 hidden 상태로 위젯 추가함
- 적 BP에서
RegisterBossHealthBar(BossEnemy)호출하면 UI 위젯에서 쓸 name이랑 healthComponent 설정해주고 hidden이었던 위젯을 visible로 바꿈

락온
테스트하기 위한 적을 만들었으니 락온을 걸어보자

ㅋㅋ 값 설정이 잘못된 것 같다
- 락온 해제 문제는 ValidateLockedTarget의 잘못된 BreakLockOn 분기였음
- 카메라 고정은 정상화됨
- 캐릭터가 기우는 문제는 UpdateLockOnRotation에서 Yaw를 Pitch에 잘못 연결했던 문제였음