Backend.Match.OnMatchInGameAccess 이벤트에 관하여..

문의를 남기실 경우 다음 항목을 작성해 주시면 빠른 답변 처리에 도움이 됩니다.

  • 프로젝트명 : Multiplayer test
  • 뒤끝SDK 버전 : 5.4.5
  • 에러 코드 :
  1. 다음 코드를 이용하여 이제 막 게임룸에 입장한 유저 닉네임을 UI에 출력하게 작성하였습니다.

  2. A에서는 이제 막 접속한 B의 유저 닉네임을 잘 받아 처리하는 반면에

  3. B에서는 OnMatchInGameAccess가 2번 실행됨에도 불구하고 상대 닉네임이 반영 안되네요.


  4. OnMatchInGameAccess로 최근에 접속한 유저의 레코드를 얻어올 수 있다고 이해했는데 제가 잘못 이해한 것일까요?

안녕하세요 개발자님.

게임방에 입장을 할 경우, 먼저 게임방에 존재하는 유저를 불러오는 핸들러가 호출됩니다.
해당 핸들러는 OnSessionListInServer로 이미 방에 접속한 유저와 자신을 GameRecord에 포함하여 List형태로 제공합니다.

OnMatchInGameAccess는 방에 접속했을 때에 호출되는 함수로 자신 이후에 들어오는 유저가 있을 경우 호출됩니다.(자기 자신도 방에 입장시 한번 호출됩니다.)

그러므로 만약 게임이 1:1이라면 B가 나중에 입장했을 경우에는 자기 자신의 닉네임만 받기 때문에 개발자님이 공유해주신 1번 사진의 로직상으로는 if문에 의해 닉네임이 적용이 안될 가능성이 있습니다.

로그를 보았을 때 GameRecord의 Count를 호출하는데 이 Count가 OnMatchInGameAccess에서 받아온 것이 아닌 OnSessionListInServer에서 받아온 GameRecord인지 확인해주시면 감사하겠습니다.

마지막 로그를 보시면 OnMatchInGameAccess 가 두 번 불렸다는 걸 확인하실 수 있습니다 ㅠ
이게 왜 나중에 참여한 B쪽에서 두 번 호출되는지 도통 이해가 되질 않네요.

혹시 OnSessionListInServer의 핸들러에 OnMatchInGameAccess의 핸들러가 설정되어있는지 확인해주시고,

OnSessionListInServer 핸들러에서 두번째로 참가한 유저 기준으로 GameRecords의 Count 값이 정상적으로 2로 출력되는지 확인해주시면 감사하겠습니다.

좋아요 1