[UE5 / C++] ⛔ C++ 기반 Blueprint 액터 에러 해결

Singery00·2024년 9월 5일
0

UE5

목록 보기
35/37
post-thumbnail

개요

⛔ C++ Class의 자식으로 생성한 Blueprint 액터가 오작동할 때의 수정방법

C++로 유닛의 베이스를 작성하고 해당 클래스를 기반으로 Blueprint 액터를 생성했다.
이때, BP_Unit의 멀쩡했던 컴포넌트가 Details 패널에 값이 나타나지 않는다던가, 특정 요소가 사라지는 현상이 발생했다.

해당 이슈를 해결해보겠다.


본론


⛔ 문제 사항

유닛들의 커스텀 체력바를 생성해서 Widget Component를 사용하여 적용해주었다.
동작이 문제 없었는데 어느 순간 문제가 발생했다.

아래는 발생한 문제사항을 다시 구현한 모습입니다.

정확히 발생한 문제는 Widget Component의 위치가 레벨 기준으로 0,0,0 좌표로 이동하는 이슈였습니다.


원인 파악

우선 원인을 파악하기 위해 Blueprint상에서 Widget Component를 추가해보니 C++로 추가된 위젯에는 Transform에 Scale부분만 있다는 것을 확인하였습니다.

즉, WB_CustomHpBar 위젯이 문제가 있는 것이 아니라 Widget Component가 어디선가 문제가 있다는 뜻입니다.

그리고 해당 Widget Component는 C++에서 추가되어 코드를 살펴보니
클래스를 넣어주는 레퍼런스가 이전에 사용한 WB_HpBar였습니다.

레퍼런스가 충돌하면서 발생한 문제였던 것 같습니다.


문제 해결

레퍼런스를 WB_CustomHpBar로 수정해주었습니다.

또한, 프로젝트를 Regenerate해주었습니다.

이후 다시 체력바들이 설정된 액터의 상단에 모두 존재하는 것을 확인하였습니다.


마무리

또한 추가적인 이슈가 있는데 만약 위젯이 위에 설명한 것과 같이 제로벡터 위치로 이동할 경우
위젯 위치부터, 유닛의 위치까지 모두 유닛의 크기로 인식된다는 것입니다.

오늘의 결론 레퍼런스를 잘 고치자...

profile
게임 개발자가 되어보자

0개의 댓글