public Coroutine JoinMatch (Networking.Types.NetworkID netId, string matchPassword, string publicClientAddress, string privateClientAddress, int eloScoreForClient, int requestDomain, DataResponseDelegate<MatchInfo> callback);

参数

netId要加入的匹配的 NetworkID。该 ID 可通过调用 NetworkMatch.ListMatches 并从返回的匹配列表中选取结果找到。
matchPassword匹配的密码。如果匹配没有密码,则保留空白;如果匹配配置了 NetworkMatch.CreateMatch 请求之一,则提供文本字符串密码。
publicClientAddress可选的公用客户端地址。此值将存储在配对上,并提供给列出匹配的其他客户端。如果您希望玩家能够通过 Internet 直接相互连接,则应发送此值。或者,您可以传递一个空字符串,这将不会影响与配对连接或使用 Relay Server 的能力。
privateClientAddress可选的专用客户端地址。此值将存储在配对上,并提供给列出匹配的其他客户端。如果您希望玩家能够通过局域网直接相互连接,则应发送此值。或者,您可以传递一个空字符串,这将不会影响与配对连接或使用 Relay Server 的能力。
eloScoreForClient加入正在创建的匹配的客户端的 Elo 得分。如果已在所有客户端上设置此数值以指示相对技能等级,则此数值用于返回匹配并按对游戏(已提供所列玩家的技能等级)的适合程度由高到低排序。可以在所有客户端上将此值设置为 0,这会禁用 MatchMaker 中的任何 Elo 计算。
requestDomain此请求的请求域。只有同一域中的请求可以相互连接。例如,如果使用域 1 创建 NetworkMatch.CreateMatch,则只有也指定了域 1 的 ListMatches 才能找到该匹配。使用此值来接收不同(可能不兼容)的客户端版本。
callback将在此调用完成时调用的回调。

返回

Coroutine 这是一个异步函数,将在未来某个时刻(即协程结束与服务后端的通信时)完成。

描述

该函数用于告知 MatchMaker,当前客户端想要加入一个指定匹配。

从对 NetworkMatch.ListMatches 的调用获得结果并选择要加入的匹配后,应调用此函数。收到此请求后,MatchMaker 将在该匹配正在对话的 Relay Server 上保留一个席位,并获取该客户端连接至 Relay Server 所需的信息。一旦回调完成,该客户端将有必要继续连接至选择的匹配。为此,您应该使用传入的 MatchInfo 调用 StartClient()。

using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.Match;
using UnityEngine.Networking.Types;

public class ExampleScript : MonoBehaviour { public NetworkID netId;

void Start() { NetworkManager.singleton.StartMatchMaker(); NetworkManager.singleton.matchMaker.JoinMatch(netId, "" , "", "", 0, 0, OnMatchJoined); }

public void OnMatchJoined(bool success, string extendedInfo, MatchInfo matchInfo) { // ... } }