所以根据他们的文件,首先我们必须要求一个配对请求
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);
}
});
这将创建一个具有匹配ID的匹配项(例如,新创建的匹配项的匹配ID为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);
}
});
这样做,根据他们的文档,假设会找到一个挂起的匹配,在本例中,该匹配是使用ID 1创建的匹配。但是,它会创建一个ID为2的新挂起匹配。
例如,如果两个玩家正在尝试玩:
-玩家1自动调用MatchMakingRequest并创建ID为1的匹配。但他也调用FindPendingMatchesRequest,创建一个ID为2的新匹配。
-玩家2现在调用FindPendingMatchesRequest,而不是查找ID为1或ID为2的匹配项,而是创建ID为3的新匹配项。
这将继续发生在每一个寻找待定比赛的新球员身上,因此他们从不加入彼此的训练课程。
所以我的问题是,如何让FindPendingMatches请求实际查找挂起的匹配,而不是创建一个全新的匹配?