моя команда и я создаем игру в Unity и используем GameSparks для внедрения в нашу игру сетевых технологий. Мы пытаемся реализовать создание соответствия вручную, чтобы при совпадении GameSparks автоматически не сопоставляло игроков для нас. Мы хотим сами это контролировать.
Итак, согласно их документам, сначала мы должны вызвать запрос MatchMakingRequest
new GameSparks.Api.Requests.MatchmakingRequest()
.SetMatchShortCode("match_name")
.SetSkill(0) //
.Send((response) => {
if (response.HasErrors)
{ // check for errors
Debug.LogError("GSM| MatchMaking Error \n" + response.Errors.JSON);
}
else
{
Debug.Log("MatchMakingRequest response: " + response.JSONString);
}
});
Это создаст совпадение с идентификатором совпадения (например, идентификатором совпадения для вновь созданного совпадения будет 1). После того, как нам нужно вызвать FindPendingMatchesRequest.
new GameSparks.Api.Requests.FindPendingMatchesRequest()
.SetMatchShortCode("MP_match")
.Send((response) =>
{
if (response.HasErrors)
{
Debug.Log("Matchmaking error: " + response.Errors.JSON);
}
else
{
Debug.Log(response.JSONString);
}
});
При этом в соответствии с их документами предполагается найти ожидающее совпадение, которое в этом случае будет совпадением, созданным с идентификатором 1. Однако вместо этого создается новое ожидающее совпадение с идентификатором 2.
Так, например, если два игрока пытаются играть:
-Player 1 автоматически вызывает MatchMakingRequest и создает совпадение с идентификатором 1. Но он также вызывает FindPendingMatchesRequest, который создает новое совпадение с идентификатором 2.
-Player 2 теперь вызывает FindPendingMatchesRequest и вместо поиска совпадений с ID 1 или ID 2 создает новое совпадение с ID 3.
Это будет продолжаться с каждым новым игроком, который ищет ожидающий матч, поэтому они никогда не присоединяются к сеансам друг друга.
Итак, мой вопрос: как мне получить запрос FindPendingMatches, чтобы фактически найти ожидающее совпадение вместо создания совершенно нового?