해결된 질문
작성
·
20
0
안녕하세요
GameFeatureAction_AddInput #2 강의를 보면서 왜 WorldContext를 사용하는지 이해를 마쳤는데
아래 함수에서 이미 PIE의 현재 World의 WorldContext를 가져오고 그 Context에서 FGameFeatureActivatingContext의 데이터를 세팅한 후 OnGameFeatureActivating의 인자로 보내주잖아용
void ULCExperienceManagerComponent::OnExperienceFullLoadCompleted()
{
...
FGameFeatureActivatingContext Context;
{
UWorld* World = GetWorld();
const FWorldContext* ExistingWorldContext = GEngine->GetWorldContextFromWorld(World);
if (ExistingWorldContext)
{
Context.SetRequiredWorldContextHandle(ExistingWorldContext->ContextHandle);
}
}
auto ActivateListOfActions = [&Context](const TArray<UGameFeatureAction*>& ActionList)
{
for (UGameFeatureAction* Action : ActionList)
{
if (Action)
{
Action->OnGameFeatureActivating(Context);
}
}
};
...
}
...
}
그런데 왜 UGameFeatureAction_WorldActionBase::OnGameFeatureActivating에서
굳이 WorldContext를 순회하면서 다시 체킹하는식으로 코드를 만들었을까? 제가 이해를 못한 부분이 있나? 의문이 들어서 질문을 남깁니다.
OnGameFeatureActivating의 인자로 FWorldContext도 받으면 되지 않나? 라는 생각이 들어서요..
답변 1
1
제 강의에서는 WorldContext만 사용하지만 Context라는 명칭에 맞게 이것 외에도 다양한 정보를 전달할 수 있기 위해서 입니다.
확장성을 고려한 방식이라고 생각하시면 좋을 것 같아요.