文档

支持

Matchmaker

Matchmaker

队伍匹配

Enable multiple players to request matching together as a group.
阅读时间2 分钟最后更新于 15 天前

Matchmaker 支持队伍匹配,即一组玩家可以请求在游戏中让己方人员匹配到一起。 一个匹配工单可包含多名玩家。只要匹配配置支持,游戏开发者可在一个工单上尽可能多地添加玩家。 以下代码示例展示了如何创建队伍匹配:
{ "queueName": "4vs4", "attributes": {}, "players": [ { "id": "6cc5ac8d-dfab-4b50-9ede-c1d026d8dc81", "customData": { "Hero": "tank" }, "qosResults": [ { "regionId": "75721794-e9fd-4d8a-9879-aa853ed18885", "packetLoss": 0.8, "latency": 50 }, { "regionId": "1e29bd54-8acc-433a-ae7d-28ae5fc192a1", "packetLoss": 0.5, "latency": 20 } ] }, { "id": "ac35c771-291c-4e7e-9a0e-6351faf261c6", "customData": { "Hero": "support" }, "qosResults": [ { "regionId": "75721794-e9fd-4d8a-9879-aa853ed18885", "packetLoss": 0.2 "latency": 75 }, { "regionId": "1e29bd54-8acc-433a-ae7d-28ae5fc192a1", "packetLoss": 0.5, "latency": 10 } ] }, ]}
包含两名玩家及其自定义数据的工单
Unity SDK
var player1 = new Player( "6cc5ac8d-dfab-4b50-9ede-c1d026d8dc81", new Dictionary<string, object> { {"hero", "tank"} }, new List<QoSResult> { new QoSResult("75721794-e9fd-4d8a-9879-aa853ed18885",0.8, 50), new QoSResult("1e29bd54-8acc-433a-ae7d-28ae5fc192a1",0.5, 20) });var player2 = new Player( "ac35c771-291c-4e7e-9a0e-6351faf261c6", new Dictionary<string, object> { {"hero", "support"} }, new List<QoSResult> { new QoSResult("75721794-e9fd-4d8a-9879-aa853ed18885",0.2, 75), new QoSResult("1e29bd54-8acc-433a-ae7d-28ae5fc192a1",0.5, 10) });var players = new List<Player>{ player1, player2};// Set options for matchmakingvar options = new CreateTicketOptions( "Default" // The name of the queue defined in the previous step, new Dictionary<string, object>());// Create ticketvar ticketResponse = await MatchmakerService.Instance.CreateTicketAsync(players, options);// Print the created ticket idDebug.Log(ticketResponse.Id);
使用 Unity SDK 创建队伍工单

使用 Unity Lobby

与领队共享服务质量结果等玩家数据时可能会遇到诸多难题。要简化数据共享过程,可以使用 Unity Lobby 服务 玩家可以存储领队添加到工单上的数据,而领队则需要负责为队伍创建匹配工单。 工单成功匹配后,领队可以在 Lobby 数据中保存关于服务器分配的信息,玩家则可以使用这些信息来连接匹配。