인프런 커뮤니티 질문&답변
Null Crash 에러 문의
작성
·
21
·
수정됨
0
안녕하세요 아직 기본기가 없어서 너무 당연한 내용을 질문 하는건 아닌지 걱정이네요..
32강 09:40에서 발생하는 Null Crash 에러 관련하여 이해가 잘 안되는 부분이 있습니다 ..
총 2가지 문의사항이 있습니다 :)

i) 로그를 보면 Listen Server, Client A, Client B 가 로그인을 해서 총 3개의 Player Controller 가 생겼고 Player Index 를 Self 로 교체해서 각자 독립적으로 컨트롤러를 사용할 수 있게 되었는데 게임을 종료하면서 Listen Server 가 종료되었는데 Client A, Client B의 Playser Controller 는 살아있기때문에 Null Crash 에러가 2개 발생한건가요 ?
ii) 그래서 is Valid 를 통해서 Listen Server를 종료하면 Mapping context 에 이벤트가 넘어가지 않아서 에러가 안나오게 수정을 하는건지 궁금합니다!
추가로 PlayerController 관련해서 서버쪽에서 보면 아래와 같이

PlayerController 0, PlayerController 1, PlayerController 2 총 3개가 확인이 되는데
Clinet 0번과 Client 1번을 돌아가면서 확인을 해보면 둘다 PlayerController 0 만 확인이됩니다. PlayerContrller 는 플레이어마다 생성이 되는 걸로 알고 있는데
PlayerContrller1, PlayerContrller2 가 확인이 되어야하는게 아닌지 궁금합니다!
감사합니다 :)
답변 2
0
살짝 혼동이 있으신데요.
PlayerIndex 개념 강의을 다시 복습해보시기 바랍니다.
서버 입장에서는 모든 클라의 PlayerController를 관리하기 때문에
0 1 2 인덱스는 서버에서 이해하는 클라의 번호이고 (순차적으로 관리).
클라 입장에서는 타인의 PlayerController는 관리하지 않아
0번이 자기 자신의 것이고 남들 것은 없습니다. (즉 1 2는 존재하지 않음.)
0
안녕하세요, 인프런 AI 인턴입니다. 전문기님.
UE5 멀티플레이 게임 개발에서 발생하는 Null Crash 에러에 대해 이해하고 해결하기 어려움을 겪고 계신 것 같습니다. 두 가지 주요 문의사항을 하나씩 설명드리겠습니다.
i) Listen Server 종료 후 발생하는 Null Crash 에러
- 문제 설명: Listen Server에서 게임이 종료되면 서버가 닫히지만, 클라이언트 A와 클라이언트 B의 PlayerController는 여전히 존재하게 됩니다. 이는 플레이어가 종료될 때 관련 객체들 (특히 PlayerController를 포함한) 올바르게 정리되지 않아 발생할 수 있습니다. 이로 인해 “Accessed None trying to read” 오류가 발생하는 것입니다.
- 해결 방안: Listen Server 종료시, 다른 클라이언트의 PlayerController와 관련된 자원을 적절하게 해제할 필요가 있습니다.
IsValid()함수를 사용하여 객체가 유효한지 확인하고, 유효하지 않은 객체에 접근하지 않도록 방어 코드를 추가하는 것이 좋습니다.
ii) PlayerController의 인스턴스 확인 오류
- 문제 설명: 클라이언트가 고유한 PlayerController 인스턴스를 가져야 하지만, 일부 클라이언트에서 잘못된 PlayerController 객체를 참조하고 있는 것이 문제의 원인일 수 있습니다.
- 해결 방안: 각 클라이언트가 고유의 PlayerController 인스턴스를 가져야 하며, 서버에서 이를 적절하게 관리하여 각 클라이언트에 올바르게 할당되었는지 확인해야 합니다. 플레이어 인스턴스가 생성되는 시점과 관련하여 스크립트 설정을 점검해보세요.
관련된 기존 질문과 답변을 통해 좀 더 구체적인 예제들과 디버깅 방법을 참고하실 수 있습니다. 이 페이지에서는 유사한 메모리 관리 및 객체 관리 문제에 대한 논의가 이루어지고 있으니 도움이 되실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





이해가 쏙 되었습니다 ㅎㅎ 감사합니다!