인프런 커뮤니티 질문&답변

themoon007님의 프로필 이미지

작성한 질문수

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

8강 : 어트리뷰트와 UI 연동

플레이어에만 위젯을 넣었는데 NPC에서 HpBar가 어떻게 나오나요??

해결된 질문

작성

·

298

·

수정됨

0

강의 따라가다가 제 화면에서는 플레이어에만 HpBar가 나오는데 강의에선 NPC에도 나와서 질문 드렸습니다.

 

+

npc에도 같은 위젯코드를 넣어봤더니 에디터를 처음 켤 때 로딩중에 위젯컴포넌트에서 InitWidget()이 실행되면서 위젯의 SetAbilitySystemComponent()를 호출하게 되는데요.

 

저는 SetAbilitySystemComponent()에 ensure을 놔뒀더니 이 타이밍이 빙의 전이라 어트리뷰트가 등록이 안되있는 상태라서 에러가 발생하는 것같습니다.

강의 처럼 if 로직으로 바꾸면 되긴하는데 로딩중에 위젯컴포넌트의 InitWidget()가 호출되는 이유가 무엇인가요? 월드에 npc가 배치되있긴하지만 BeginPlay()를 호출하지는 않는데 왜 InitWidget()이 호출되는지 잘 모르겠습니다.

제가 part2에서 들었던거는 액터의 BeginPlay() 이후에 호출된다고만 들었는데 다른 이유가 있나요??

 

이것 때문인 것 같습니다.

답변 2

0

여기 댓글을 통해서 해결은 하였는데 23:41 이후에도 NPC에 HP 추가 관련 내용은 없는 것 같습니다.

이득우님의 프로필 이미지
이득우
지식공유자

아.. 자막 작업하면서 이전 수정 전 영상으로 덮어써진 것 같습니다.
우선 자막 이전 영상으로 돌린 후 8강 자막 영상은 다시 올리겠습니다.
제보 감사합니다!

0

이득우님의 프로필 이미지
이득우
지식공유자

음.. 글쎄요 어떻게 된건지는 이것저것 조사해봐야 알텐데요, 예제 완성 코드도 동일한 현상인지 궁금합니다.

themoon007님의 프로필 이미지
themoon007
질문자

수업자료는 영상처럼 npc도 같이 나옵니다.

강의에선 HpBar를 플레이어에만 생성자에 코드를 넣었는데

수업자료에는 NPC에도 같은 코드가 있었습니다.

강의에서 내용이 빠진 것 같습니다.

이득우님의 프로필 이미지
이득우
지식공유자

네 제보 감사합니다. 확인해보겠습니다

이득우님의 프로필 이미지
이득우
지식공유자

영상 편집하면서 NPC에 HP바를 구현하는 부분이 누락되었네요.
지금 해당 부분을 추가해 다시 올렸습니다.
23:41초부터 확인할 수 있습니다.

감사합니다!