Unity/Unity - Solutions

PUN2 - LobbyManager생성 이전에 OnRoomUpdate오류

HappyFrog 2021. 6. 26. 18:55

Title씬에서 로그인을 하고 서버에 접속하면서 Lobby씬으로 넘어가는 도중에 Update메서드에서 LobbyManager를 찾기전에 OnRoomListUpdate가 실행되며 LobbyManager를 찾을 수 없다는 NullReferenceException오류가 출력되었다.

 

아마도 내가 Update메서드에서 자동으로 알맞은 Manager를 찾도록 설계해서 나타난 오류인 듯 싶다.

 

그래서 Coroutine을 사용하여 해결해보았다.

 

처음 접속부만 예외처리를 해주면 되는 상황이기때문에 Lobby씬이 아닌데 OnRoomListUpdate을 실행하면 roomInfos를 저장해두고 Coroutine에서 1초뒤에 처리하도록 하였다.

 

하지만 다시 10번 실행해보았지만 lobbyManager를 찾기전에 OnRoomListUpdate가 실행되는 오류가 나지 않았다.

 

그리고 LoadScene을 한 이후에 JoinLobby를 하도록 햇는데 왜 LobbyManager를 찾기도 전에 OnRoomList가 먼저 실행됐는지도 의문이다 => 아마도 Update에서 자동으로 찾도록 해두어서 그럴것이라는 생각이다.

 

 


해결되지 않았다. 코루틴으로 해도 Lobby매니저를 늦게 찾는 순간에 ClearRoomListView가 실행되었고 lobby매니저가 없기때문에 NullReferenceException이 출력되었다.

 

하지만 위와 같이 PUN2Manager의 로비매니저가 null이라면(로비매니저를 연결하는 과정에서만 문제가 나서 lobby매니저만 처리함.)해당 roomList를 변수에 보관해두고 1초 기다렸다가 RoomListUpdate를 하도록 한 뒤 해당 작업이 모두 끝나면 Coroutine을 정지시켰다.

아래 사진을 보면 알 수 있듯이 잘 처리를 해주는 모습이다.