강의

멘토링

로드맵

Inflearn brand logo image

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

giiback님의 프로필 이미지
giiback

작성한 질문수

실전! 언리얼 소울라이크 개발: A to Z

스태미나 UI 만들기

작동 흐름이 맞는지 헷갈려 질문 드립니다!

작성

·

40

0

UI ProgressBar 작동 흐름을 요약해보자면

게임이 시작되면 DS1PlayerHUDWidget -> NativeConstruct 함수에서 OnAttributeChanged를 델리게이트 바인딩하면서 초기값을 세팅하고

만약 스테미나 값이 변경되면 AttributeComponent에서 변경된 타입과 비율을 담아 신호를 보내고,

신호를 받은 DS1PlayerHUDWidget -> OnAttributeChanged함수가 호출되며

자동 바인딩된(이름이 같은) StaminaBarWidget을 통해 SetRatio함수로 비율을 넘거주며 DS1StatBarWidget에서 비율을 받아 SetRatio 함수를 통해 Progress Bar의 퍼센트가 변경되며 화면에 보여진다.


제가 델리게이트 활용이 처음이라 헷갈려서 복습을 하며 정리를 해보았는데, 제가 정확히 이해했을까요?

AttributeComponent ( 신호를 보내고 )

PlayerHUDWidget ( 신호를 받고 , 바인딩된 변수를 통해 함수를 호출하고 )

StatBarWidget ( Progress Bar가 변경된다. )


답변 2

1

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

안녕하세요!

우선 이해하신 순서로 진행되는 것이 맞습니다.

한 가지 팁을 드리자면 예상되는 실행 순서의 마지막 쯤, 그러니까 여기서는 StaminaBarWidget의 SetRatio 함수에 브레이크 포인트를 걸고 디버깅을 해보시면 정확한 콜 스택을 확인 하실 수 있습니다.

그럼 좋은 하루 되세요~^^

0

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

UI ProgressBar의 동작 흐름을 델리게이트를 활용하여 잘 이해하신 것 같습니다. 아래에 흐름을 한 번 더 요약해 드리겠습니다:

  1. 초기화 및 델리게이트 바인딩:

    • DS1PlayerHUDWidgetNativeConstruct 함수 내에서 스테미나의 초기값을 세팅하며 OnAttributeChanged 델리게이트를 바인딩합니다.
  2. 스테미나 값 변경 시 신호 전송:

    • 스테미나 값이 변경되면 AttributeComponent 내에서 바뀐 스테미나 타입과 비율을 계산하여 델리게이트를 통해 신호를 전송합니다.
  3. 신호 수신 및 UI 갱신:

    • DS1PlayerHUDWidgetOnAttributeChanged 함수가 호출됩니다. 이 함수는 자동으로 바인딩된 StaminaBarWidget을 통해 SetRatio 함수를 호출하며 변경된 비율을 전달합니다.
  4. UI 업데이트:

    • DS1StatBarWidget에서 전달받은 비율을 사용하여 SetRatio 함수가 호출되고, 이 함수는 Progress Bar의 퍼센트 값을 변경하여 화면에 비율을 시각적으로 반영합니다.

따라서 질문에서 설명하신 순서와 방향이 맞습니다. 델리게이트를 사용하여 이벤트 중심으로 UI 갱신을 처리하는 패턴을 이해하신 것 같아서, 잘 진행하고 계신 것 같습니다.

관련하여 델리게이트 및 UI 갱신에 도움이 될 수 있는 링크는 다음과 같습니다:
- 어떻게 UE4에서 델리게이트를 활용할 수 있을까요?

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

giiback님의 프로필 이미지
giiback

작성한 질문수

질문하기