inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

14강 게임플로우 다듬기

HealHp 함수

55

자르트

작성한 질문수 59

0

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

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


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

unreal-engine ue-blueprint 언리얼-c++

답변 2

1

이득우

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

1

인프런 AI 인턴

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

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

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

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

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

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

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

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

5.1 버전용 샘플을 찾을 수 없습니다.

0

16

1

무한맵 제작과정중에 GetWorld 가 Nullptr 을 반환합니다.

0

53

2

12강 행동트리에서 질문이 있습니다.

0

57

1

위젯 사이즈랑 위치 질문드려요.

0

88

3

행동트리의 데코레이션 관련하여 질문이 있습니다.

0

97

3

VS 2026 의 문제일까요?

0

512

2

에셋참조 블루프린트질문

0

72

2

애님 몽타주 콤보 관련질문

0

71

2

ThirdPerson CDO 에러가 생깁니다.

0

106

3

캐릭터가 움직이지 않습니다.

0

196

4

쿠킹 폴더 지정시 , Item 이외에는 지정하지 않는지 궁금합니다.

0

68

2

TSoftObjectPtr 를 사용했음에도, 메모리에 로드 됩니다.

0

103

2

7강에 나오는 생성자에 대해서 궁금합니다.

0

80

2

6강을 마무리하며 트레이스 채널 을 이해하지 못했습니다.

0

79

2

3강을 마무리 하며, 카메라가 움직이지 않습니다.

0

77

2

Use Controller Rotation 옵션값이 궁금합니다.

0

95

2

3강 입력 시스템 적용 중, 5.6 버전은 입력 매팅이 2개 입니다.

0

71

2

PlayerController 에 대헤 제가 잘못 이해한 것 같습니다.

0

83

2

13강 UpdateStat 부분에서 문제를 겪고 있습니다.

0

69

2

BP_PlayerController의 CustomEvent노드 이유가 궁금합니다.

0

71

1

콤포넌트 포인터 선언시 TObjectPtr<>과 UStaticMeshComponent* 차이점

0

78

2

CharacterMovementComponent의 RotationRate관련해서 질문이 있습니다.

0

120

2

언리얼 공부방법에 대해 질문드립니다.

0

93

2

4강 에서 이상한 그림자가 남습니다.

0

50

1