인프런 커뮤니티 질문&답변
작성자 없음
작성자 정보가 삭제된 글입니다.
무한맵 제작과정중에 GetWorld 가 Nullptr 을 반환합니다.
작성
·
20
·
수정됨
0
void AKSHStageGimmick::SetFight()
{
StageTrigger->SetCollisionProfileName(TEXT("NoCollision"));
for (auto GateTrigger : GateTriggers)
{
GateTrigger->SetCollisionProfileName(TEXT("NoCollision"));
}
UWorld* World = GetWorld();
if (World ==nullptr)
{
UE_LOG(LogTemp, Error, TEXT("World is Nullptr"));
return;
}
CloseAllGates();
World->GetTimerManager().SetTimer(OpponentTimerHandle, this, &AKSHStageGimmick::OnOpponentSpawn, OpponentSpawnTime, false);
}
안녕하세요!
프로젝트를 빌드하여 에디터를 처음실행하게되면 World 가 nullptr 을 반환합니다.
하지만 두번째이후부터는 정상적으로 GetWorld 를 하면 world 반환됩니다. 버전은 5.7.4 버전을 이용중입니다..
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. pakheae님!
GetWorld()가 nullptr을 반환한다는 문제는 주로 객체가 완전히 초기화되기 전에 GetWorld()를 호출할 때 발생할 수 있습니다. 게임이 실행되기 전에 월드가 아직 로드되지 않아서 발생하는 경우도 있습니다. 이 문제는 주로 객체 생성 시점과 관련이 있을 수 있습니다.
해결 방법:
BeginPlay 사용:
GetWorld()를 직접적으로 호출하기 전에 객체가 완전히 초기화된 후에 호출하여 문제를 회피할 수 있습니다. 메서드를BeginPlay()메서드 내에서 호출해보세요. 이 부분에서 확인이 필요합니다.BeginPlay()는 액터가 월드에 스폰된 후 호출되므로, 더 신뢰할 수 있습니다.디버깅:
UE_LOG를 사용하여 함수 호출의 순서를 로깅하시면, 월드가nullptr로 나타나는 시점을 확인하여 문제의 정확한 원인을 찾는 데 도움이 될 수 있습니다.코드 재검토:
StageTrigger와GateTriggers같은 객체들이SetFight()를 호출하기 전에 올바르게 초기화되었는지도 확인해 보세요.
유사 질문 답변 참조:
유사한 문제에 대한 도움을 받을 수 있는 링크를 제공드립니다. GetWorld() 가 nullptr을 반환합니다에 대한 이득우 강사님의 답변을 참고하시면 도움이 될 것입니다. 이 주제에서 유사한 문제를 다룬 경험이 있었습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





