OnJoinMatchMakingServer 중복 호출. 재시작 오류

MMR 1:1 모드로 게임을 제작중입니다.
처음 로그인해서 인게임 서버 접속한 후에는 정상적으로 플레이가 되지만,
로비로 돌아온 뒤 다시 인게임 서버로 접속하려고하면 오류가 납니다.
문제는 유니티가 멈추는 것도, 콘솔 창에 오류, 경고가 뜨지도 않습니다.
그리고 게임을 끄고 다시 접속하면 잘 접속되고, 한판 후에 다시 접속하면 오류가 납니다.

단지 처음 로그인 해서 인게임 서버로 접속할 때와 다른 점은
OnJoinMatchMakingServer 가 두번 호출 된다는 점입니다.

#1 login 씬
로그인.

#2 Loby
로드와 동시에 JoinChannel(public) 호출.
버튼으로 JoinMatchMakingServer() 호출.
OnJoinMatchMakingServer -> CreateMatchRoom() 호출
OnMatchMakingRoomCreate -> RequestMatchMaking() 호출
OnMatchMakingResponse -> JoinGameServer() 호출
OnSessionJoinInServer -> JoinGameRoom() 호출
OnMatchInGameStart -> 씬 전환

#3 인게임
게임 후 MatchEnd() 호출.
클릭 후 씬 전환 LoadScene(#2)

안녕하세요 개발자님

해당 코드가 다음과 같이 +=으로 되어있을 경우, 다시 호출하실때에 핸들러가 한번 더 등록하여 두번이 호출되는 상황이 발생할 수 있습니다.

로비씬으로 전환되면서 Start()함수를 통해 핸들러를 초기화시키는 코드가 있을 경우, 해당 코드와 같이 되어 있으면 초기화가 아닌 핸들러가 한번 더 등록될 수 있으니 해당부분 확인해주시면 감사하겠습니다.

Backend.Match.OnJoinMatchMakingServer += (args) => {
    // TODO
};

또한 이렇게 되어 있을 경우 아래처럼 += 를 = 으로 문법을 바꿔주시면 해당 핸들러를 초기화 해주실 수 있습니다.

Backend.Match.OnJoinMatchMakingServer = (args) => {
    // TODO
};
좋아요 1