작성
·
6
0
우선 SetupPlayerInputComponent() 에서 CheckDefaultInitialization() 을 호출하여 PawnExtensionComponent 의 상태를 업데이트 하는 것으로 보이는데, 이 시점에서 PlayerController 가 존재하기 때문에 DataAvailable 로 넘어가게 된다 라는 것까지는 이해할 수 있었습니다.
근데 자신의 업데이트 과정은 CheckDefaultInitialization() 내부에서의 ContinueInitStateChain(StateChain) 이 호출될 때 진행되는 것으로 알고 있는데, 코드상에서 보이듯 이 호출 이전에 implementers의 CheckDefaultIntialization() 호출을 먼저 한 다음에 자신의 상태 업데이트가 이루어지는 것이 맞는지 확인하고 싶습니다.
왜냐면 강의에선 마치 ContinueInitStateChain(StateChain) 가 먼저 이루어진 다음에 Implementers 의 CheckDefaultIntialization() 를 호출하는 것처럼 말하는 걸로 느껴졌습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. hush park님.
Pawnextension#3 강의에서 설명하신 내용에 대해 조금 더 구체적으로 설명드리겠습니다. SetupPlayerInputComponent()
에서 CheckDefaultInitialization()
은 PawnExtensionComponent
의 상태를 업데이트하는 역할을 하고, PlayerController
가 존재하기 때문에 DataAvailable
로 넘어가게 됩니다.
이 과정에서 CheckDefaultInitialization()
의 로직은 다음과 같은 순서를 따라 진행됩니다:
Implementers의 CheckDefaultInitialization 호출: 먼저, implementers의 CheckDefaultInitialization()
이 호출됩니다. 이는 상속받은 클래스들 각각이 초기화될 수 있도록 설계된 과정입니다.
ContinueInitStateChain 호출: implementers가 완료된 후에 ContinueInitStateChain(StateChain)
이 호출됩니다. 이 함수는 상태 체인을 계속 진행시켜, 다음 단계의 상태를 설정하거나 초기화할 수 있도록 합니다.
따라서, 말씀하신 대로 implementers의 CheckDefaultIntialization()
이 먼저 호출되고, 그 후에 ContinueInitStateChain(StateChain)
의 호출로 자신의 상태 업데이터가 이루어지는 것이 맞습니다. 강의에서 설명된 순서와 다르게 느껴지셨다면, 아마도 강의 내용이나 표현에서 오해가 있었던 것 같습니다.
아래는 관련 질문과 답변을 참고할 수 있는 유사한 스레드를 소개해드립니다:
관련 질문에 대한 해답이 부족할 경우, 이어서 질문을 더해 주시면, 강사님께서 곧 직접 답변해 주실 것으로 기대합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.