注意:已弃用 UNet,未来会将其从 Unity 中删除。一个新系统正在开发中。如需了解更多信息和后续步骤,请参阅此博客文章以及常见问题解答 (FAQ)。 |
Matchmaker 模式提供了一个简单的界面让玩家创建、查找和加入 Unity Multiplayer 服务上托管的比赛。
“比赛”(有时也称为游戏会话或游戏实例)是由 Unity Multiplayer 服务托管的游戏的独特实例。使用 Unity Multiplayer 服务,一定数量的玩家可以加入并一起玩游戏。如果有很多玩家玩游戏,可能会有多个比赛,每个比赛都有多个玩家一起玩。
为了使用 Matchmaker 模式,必须首先为项目启用 Unity Multiplayer 服务。为项目启用 Unity Multiplayer 服务后,可使用 Matchmaker 模式下的 HUD 创建或连接到互联网上托管的游戏实例(有时也称为“比赛”或“会话”)。
单击 Create Internet Match 可开始新的比赛。Unity 的 Multiplayer 服务会创建一个新的游戏实例(“比赛”),然后其他玩家可以找到并加入该游戏实例。
单击 Find Internet Match 可向 Unity Multiplayer 服务发送请求。Unity Multiplayer 服务会返回此游戏当前存在的所有比赛的列表。
例如,如果两个单独的玩家连接,并分别创建一个名为“Match A”和“Match B”的比赛,当第三个玩家连接并按下 Find Internet Match 按钮时,__Match A__ 和 Match B 将显示在可加入的比赛列表中。
在 Network Manager HUD 中,可用的比赛显示为一系列按钮,并显示文本“Join Match: match name”(其中 match name 是创建比赛的玩家选择的名称)。
要加入其中一个可用的比赛,请单击该比赛的“Join Match: match name”按钮。或者,单击 Back to Match Menu 返回到 Matchmaker 菜单。
将 HUD 替换为自己的 UI 时,可使用更好的方法列出可用的比赛。许多的多人游戏采用可滚动列表显示可用比赛。有时可能希望列表中的每个条目显示比赛名称、玩家当前数量和最大数量以及其他信息,如比赛模式类型 - 如果决定让游戏具有不同的比赛模式(例如“夺旗”、“1 对 1”或“合作”)。
注意:有一些特殊字符,如果在比赛名称中使用这些字符,Network Manager HUD 中的可用比赛列表中会修改这些字符。这些字符包括:
左方括号:[
百分比符号:%
下划线:_
如果比赛名称包含这些字符,可用比赛列表中会用方括号将这些字符括起来。所以,名为“my_game”的比赛将在列表中显示为“my[_]game”。
此按钮专为 Unity 工程师内部使用而设计(用于测试 Multiplayer 服务)。此处显示的按钮将三个预定义 URL 之一分配给 Network Manager 中的 MatchMaker Host URI 字段 -“local”、“staging”和“internet”。但是,“local”和“staging”** *选项仅供 Unity 工程师内部使用,不适用于一般用途*。
如果选择“local”或“staging”选项,则游戏无法连接到 Unity 的多用户服务。因此,应始终确保此选项设置为“internet”(这是默认设置)。
此处显示当前的 Matchmaker URI(统一资源标识符,用于标识作用的字符串)。要在 Inspector 中查看 URI,请导航到 Network Manager 组件并查看 MatchMaker Host URI 字段。默认情况下,此字段指向全局 Unity Multiplayer 服务,用于使用 Unity Multiplayer 服务的普通多人游戏。不需要更改此字段。Unity Multiplayer 服务自动将游戏玩家分组到全球的区域服务器。这种分组方式确保了在多人游戏中同一地区的玩家之间实现快速响应,因此,来自欧洲、美国和亚洲的玩家通常最终会与来自同一区域的其他玩家一起玩游戏。
如果要显式控制游戏连接到的区域服务器,请通过编写脚本来重写此值。要了解更多信息和区域服务器 URI,请参阅有关 NetworkMatch.baseUri 的 API 参考文档。
例如,如果想让玩家选择加入所在区域之外的服务器,可能需要覆盖 URI。如果美国的“玩家 A”想要连接到由欧洲“玩家 B”通过 Matchmaker 创建的比赛,他们需要能够在游戏中设置所需的区域。因此,需要编写一个 UI 功能,允许玩家选择此设置。
注意:请记住,Network Manager HUD 功能是针对开发的临时辅助功能。此组件允许您快速运行多人游戏,但在准备就绪之后应将其替换为您自己的 UI 控件。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.