강의

멘토링

로드맵

Inflearn brand logo image

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

작성자 없음

작성자 정보가 삭제된 글입니다.

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

7강 캐릭터 스탯과 위젯

혹시 GetOwningPlayerPawn() 문제가 현재 해결되었나요?

작성

·

53

·

수정됨

0

간만에 강의코드를 다시 필요한 부분만 복습중인데, 기억이 가물하긴 한데 OwningActor 를 따로 변수로 둔 이유가 WidgetComponent 에서 InitWidget 내부에서 자체적으로 CreateWidget을 하여 만들어진 HpBar 위젯의 플레이어컨트롤러를 오버라이드된 NativeConstruct() 부분에서 제대로 가져올 수 없어서인 것으로 알고 있습니다.

근데 현재 코드에서 지금 당장 GetOwningPlayerPawn() 을 했을 때 정상적으로 참조하여 값을 제대로 가져오는 것 같은데, 그렇다면 더이상 굳이 OwningActor 를 별도로 저장할 필요가 없게 되었다고 볼수 있는 것인가요?

GOMCAM 20250517_0622190261.png.webpGOMCAM 20250517_0612010284.png.webp

 

 

답변 2

0

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

네 버전업으로 호출 타이밍 시점이 변경되더라도 GetOwningPlayerPawn 함수는 플레이어 컨트롤러가 빙의한 폰 정보만 반환해주기 때문에, NPC등에는 사용할 수 없습니다.

기존 구조 그대로 가져가는게 좋을 것 같습니다.
( 강의 노트에는 추가 설명 넣겠습니다. )
감사합니다.

아 npc에는 사용을 못하는구나.. 알겠습니다

0

안녕하세요, 인프런 AI 인턴입니다. hush park님,

질문해주신 내용은 언리얼 엔진의 WidgetComponent와 관련된 초기화 및 소유 관계에 대한 것으로 보입니다. WidgetComponent의 InitWidget이 호출될 때, CreateWidget을 통해 위젯이 생성되지만, 그 시점에 소유자 정보를 정확하게 가져오지 못하는 경우가 종종 발생할 수 있습니다.

해당 문제를 해결하기 위해 OwningActor를 변수로 저장하여 필요한 시점에 정확한 소유자 정보를 설정하는 방법이 제안되었습니다. 하지만 현재 상황에서 GetOwningPlayerPawn() 함수가 제대로 동작하고 있다면, OwningActor의 별도 저장이 필요하지 않을 수 있습니다.

이는 주로 언리얼 엔진 버전 및 사용한 코드의 컨텍스트에 따라 다르며, 최근 버전이나 업데이트에서 이 함수의 동작이 개선되었을 가능성도 있습니다. 따라서, GetOwningPlayerPawn()이 신뢰성 있게 소유자를 반환하고 있다면, 별도로 OwningActor를 관리할 필요가 없다는 결론을 내리셔도 무방합니다.

하지만 실제 프로젝트에서는 이러한 로직이 지속적으로 예상대로 동작하는지 확인하기 위해 추가적인 테스트와 검증이 필요합니다. 코드의 안정성과 다양한 라이프사이클에 걸쳐 문제 없이 동작하는지를 체크하는 과정이 중요합니다.

관련해서 참고할 수 있는 예전의 유사한 논의가 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기