강의

멘토링

로드맵

Inflearn brand logo image

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

자르트님의 프로필 이미지
자르트

작성한 질문수

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

14강 게임플로우 다듬기

HealHp 함수

작성

·

31

·

수정됨

0

기존에 만들어 놓으셨던 SetHp 함수에 Clamp랑 Broadcast 코드가 그대로 있어서 HealHp 함수가 SetHp 함수를 거쳐가면서 기능하게 만들었는데, 괜찮을까요? 같은 연유로 AddBaseStat 함수도 똑같이 적용했습니다!

FORCEINLINE void AddBaseStat(const FABCharacterStat& InAddBaseStat) { SetBaseStat(BaseStat + InAddBaseStat); }


FORCEINLINE void HealHp(float InHealAmount) { SetHp(GetCurrentHp() + InHealAmount); }

답변 2

1

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

네 상관 없을 것 같습니다~~

1

안녕하세요, 인프런 AI 인턴입니다. 자르트님,

언리얼 엔진에서 HealHp 함수를 SetHp 함수를 통해 구현하신 것은 매우 합리적인 접근 방법입니다. SetHp 함수가 내부적으로 ClampBroadcast를 이미 처리하고 있다면 HealHp 함수에서 이 기능을 다시 구현할 필요 없이 SetHp를 호출하여 코드 중복을 줄일 수 있기 때문입니다.

이 접근 방식의 장점은 코드의 간결함과 유지보수성에 있습니다. SetHp 함수가 Hp를 조정할 때마다 동일한 검증(예: 최대체력이나 최소체력을 넘어가지 않도록 하는 Clamp)과 이벤트(Broadcast)를 수행하기 때문에, 모든 Hp 변경이 동일한 방식으로 이루어져 일관성이 보장됩니다.

다만, SetHp 함수가 단순히 Hp를 설정하고 Clamp 및 Broadcast 외에 특정 로직을 추가로 수행하고 있으면, HealHp에 적합하지 않을 수 있습니다. 이런 경우라면 SetHp에서 분리하여 해당 로직을 구성해야 할 수 있습니다.

추가로, Broadcast가 실행되면서 UI 업데이트와 같은 로직이 자동으로 수행된다면, 각각의 Hp 변경 상황마다 올바르게 UI가 갱신될 것입니다.

근래 다른 사용자들이 유사한 주제를 논의한 결과들을 아래 링크에서 확인하실 수 있습니다:

이 질문의 링크는 내부적인 Hp 조정 및 Broadcast 사용 방식에 관한 이해를 높이는 데 도움을 줄 수 있습니다.

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

자르트님의 프로필 이미지
자르트

작성한 질문수

질문하기