
本指南向您展示如何保留 Unity Gaming Services (UGS) Matchmaker,并在 Edgegap 的专属游戏服务器上托管每场比赛:当 UGS 组成一场比赛时,Edgegap 会在玩家附近部署一台服务器,UGS 会将其地址分发给每位玩家。
一旦您的游戏服务器完成容器化,Edgegap 即可通过简单的 API 调用将其按需部署到全球 615+ 个边缘云节点,并完全按用量计费:无需租用整台服务器、预配置或在比赛间隙保持运行。对于需要预留容量的持久服务器,Edgegap 提供了专用机群 (Private Fleets)。
两者之间的桥梁是 Edgegap 的分配器 (allocator),这是一个由 Unity 官方分发的轻量级 Cloud Code 模块。当比赛形成时,UGS 会调用它,它会请求 Edgegap 部署您的服务器,然后将服务器的地址和端口返回给 UGS,再由 UGS 传递给您的玩家。

本指南涵盖:
准备一个可用的 Edgegap 应用版本及您的 UGS 项目
将您的编程智能体连接到 Edgegap(可选)
开启 UGS 服务
配置并部署 Edgegap 的分配器
将匹配客户端添加到您的游戏中
创建您的队列和比赛规则
使用两名玩家进行测试
您可以通过两种方式进行操作,也可以结合使用:
使用编程智能体。将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其 agent skills。智能体将配置分配器、编写匹配客户端并检查您的应用版本及部署。您只需在 Unity 和 Unity Cloud 控制面板中进行点击操作、管理密钥以及进行游戏测试。
手动操作。以下每个步骤均可在没有智能体的情况下完成。
更喜欢无需 Cloud Code 的托管撮合服务?请参阅 Unity 對局配對 SDK。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。
游戏服务器的一个正常运行的 Edgegap 应用版本:即您至少部署并加入过一次的服务器。UGS 将在每场比赛中部署该版本,因此它需要一个功能完备的容器化游戏服务器来实现端到端运行。如果您目前还没有,请参考我们的指南:
已关联到 Unity Cloud 的 Unity 项目(前往 Edit → Project Settings → Services 可查看已关联的项目及其 ID)。
.NET SDK 8 或更高版本,用于部署 Cloud Code 模块。使用
dotnet --version检查版本。Edgegap API 令牌,可从 Dashboard → User Settings → Tokens 获取。它将在第 4 步中存入 Cloud Code 密钥,切勿用于其他任何地方:该令牌适用于整个组织,因此切勿将其放入您的项目、游戏客户端、游戏服务器或聊天中。
在此,我们使用 Edgegap 对 Unity Boss Room 示例的复刻版本,该版本已作为专用服务器运行,并包含匹配客户端。
2. 将您的代码代理连接到 Edgegap
如果您完全手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的智能体检查您的应用和版本、部署测试服务器并查看您账户上的日志。edgegap-deployments-api 智能体技能为部署 Edgegap 服务器的后端提供了规则(包括 UGS Cloud Code):令牌存储位置、将服务器部署在靠近玩家的位置以及处理错误。
Claude Code(在您自己的终端中运行,这样令牌就绝不会通过聊天传递):
claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp -H "Authorization: token YOUR_EDGEGAP_API_TOKEN" --scope user
然后安装技能:/plugin marketplace add edgegap/edgegap-agent-skills,接着运行 /plugin install edgegap@edgegap。重启会话。
Cursor、VS Code 及其他发送请求头的客户端:添加 https://mcp.edgegap.dev/mcp,并附带请求头 Authorization: token YOUR_EDGEGAP_API_TOKEN,然后使用 npx skills add edgegap/edgegap-agent-skills --skill "*" 安装技能。
Claude Desktop:自定义连接器无法发送请求头,因此请改用本地服务器(Node 18+):{ "mcpServers": { "edgegap": { "command": "npx", "args": ["-y", "@edgegap/mcp"] } } }。首次使用时会要求输入令牌。
检查其是否正常工作:
“列出我的 Edgegap 应用及其版本,以及每个版本的端口。”
请记下确切的应用名称、版本名称和端口名称:步骤 4 会用到它们。
3. 开启 UGS 服务
此集成使用三项 UGS 服务:Authentication、Matchmaker 和 Cloud Code。跳过你的项目中已有的服务。
在 Unity 中,打开Window → Package Manager,将来源设置为 Unity Registry,然后安装 Cloud Code 和 Multiplayer Services(其中包含 Matchmaker 并会引入 Authentication)。
在 cloud.unity.com 上,打开你的项目并启用 Authentication、Matchmaker 和 Cloud Code。
请注意你的环境(默认为 production)。密钥、模块和队列必须全部位于同一个环境中。
4. 配置并部署 Edgegap 的分配器 (allocator)
分配器位于 Unity 的 matchmaker hosting providers 存储库中,独立于您的游戏项目。
将其克隆到您的项目旁边:
git clone https://github.com/Unity-Technologies/matchmaker-hosting-providers.git打开 Edgegap 分配器的
EdgegapAllocator.cs并设置标记为TODO的三个常量,直接从 Edgegap 仪表板复制,不要重新手动输入:ApplicationName(您的应用程序)、VersionName(您的应用版本)和PortName(gameport)。将EdgegapApiTokenSecretName保留为EDGEGAP_API_TOKEN。在 Unity Cloud 仪表板中,在Administration → Secrets下,在同一环境中添加一个机密:键为
EDGEGAP_API_TOKEN,值仅为您自己的 Edgegap API 令牌,不包含多余的单词或空格。在 Unity 中,在项目中创建一个 Cloud Code C# Module Reference,并将其指向克隆存储库中的分配器解决方案文件 (
.sln)。如果将其指向其他任何内容,将部署一个空模板,尽管看起来像是部署成功了。打开 Services → Deployment,勾选该模块,选择您的环境,然后选择 Deploy Selected。
检查是否成功生效:在 Unity Cloud 仪表板中,该模块会显示两个端点:
Matchmaker_AllocateServer和Matchmaker_PollAllocation,每个端点都会返回分配器自己的类型。如果返回类型仅为“string”,则表示引用指向了错误的文件。


配合您的智能体使用:“在克隆的 matchmaker-hosting-providers 存储库中,将 EdgegapAllocator.cs 中的 ApplicationName、VersionName 和 PortName 设置为我的 Edgegap 应用、版本和端口。不要更改机密名称,也不要在任何地方写入我的令牌。”机密的添加和模块的部署需要您自行完成。
以下是我们结合 Edgegap 使用 UGS Matchmaker 的视频教程,其中使用了 Edgegap 派生的 Boss Room 版本:
5. 将匹配客户端添加到您的游戏中
您的游戏需要一个客户端来完成以下操作:让玩家登录、在您的队列中创建票证(ticket)、等待分配,然后连接到服务器。仅连接调用取决于您的网络代码(在 Boss Room 中为 StartClientIp)。
在每位玩家的票证中发送其公网 IP。Edgegap 会根据玩家的位置来部署服务器;若没有 IP,部署将回退到默认位置。将其作为 player_ip 添加到票证的属性中;Edgegap 文档中包含用于获取该 IP 的代码片段。
还没有客户端?向任何 AI 编码助手提供以下提示词:
“在不更改我的网络代码的情况下,为我的游戏添加一个独立的 Unity Gaming Services Matchmaker 客户端。首先,进行审核(只读)并告诉我:我的项目用于通过地址和端口将客户端连接到服务器的方法(文件、行号、签名以及端口参数的类型),以及所使用的传输层协议(transport)。然后创建一个 MonoBehaviour,用于初始化 UGS 并匿名登录;为了进行同机测试,在登录前为每个运行实例设置唯一的配置文件(profile);获取玩家的公网 IP;使用已登录的玩家 ID 以及作为 player_ip 属性的 IP 在序列化的队列名称字段上创建票证;最多每 3 秒轮询一次票证,重试失败的轮询,直到收到分配或超时;然后将分配的 IP 和端口传递给我的连接方法,并将端口转换为其所需的类型。添加一个临时的屏幕‘Matchmake’按钮。保持代码精简并附带注释。”
然后将其添加到您的初始场景中:创建一个名为 Matchmaker 的空游戏对象,添加该组件,并将其队列名称设置为您在步骤 6 中创建的队列。
6. 创建队列和匹配规则
在 Unity Cloud 仪表板中,打开 Matchmaker:
创建一个队列(例如
mygame-queue),在此测试中每个票据最多包含 2 名玩家。在队列中创建一个池,并将其托管类型设置为 Hosting via Cloud Code。将其指向您的模块、其 allocate 端点及其 poll 端点。默认的分配超时时间为 Edgegap 留出足够的时间来启动服务器。
为最简单的测试设置匹配规则:一个队伍,队伍数量为 1,玩家数量最少和最多均为 2。保持回填(backfill)处于关闭状态。
保存。队列变为激活状态,现在您的配对程序即可部署到 Edgegap。
然后根据 Unity 的 Matchmaker 文档针对您的游戏调整规则(队伍大小、技能范围、区域)。Edgegap 只需要分配器。
7. 双人测试
在一台机器上运行两个客户端。使用 Edgegap 的 Boss Room 分支时,请使用 ParrelSync(已包含),而不是 Multiplayer Play Mode。
在两个客户端中都选择 Matchmake。UGS 会将两张票证分组,调用您的分配器,并且 Edgegap 会在玩家附近部署一台服务器。您可以在 Edgegap 控制面板中看到它出现,并带有撮合程序的标记。
两名玩家会自动连接到同一台服务器。服务器的容器日志会显示输入了两张票证,输出了一场比赛。
离开比赛:比赛结束时,您的服务器会自动停止其自身的部署(请参阅您的服务器指南),因此您只需在玩家游玩时付费。
分配器通过轮询 Edgegap 的状态 API 来获取每台服务器的地址,这对于大多数游戏来说已经足够了。对于超大规模的发布活动(数万名并发玩家),请改用 Edgegap 的就绪 webhook,相关说明请参阅 Edgegap 文档。
正从 Multiplay 迁移?Edgegap 的文档将 Multiplay 概念对应到了 Edgegap。更喜欢无需维护 Cloud Code 的托管撮合系统?请参阅Unity 對局配對 SDK。
准备上线?让您的代理运行 edgegap-launch 技能的检查清单:版本发布、重启策略、最长持续时间、成本控制。
遇到困难?让您的代理加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室咨询。
常见问题
关于在 Edgegap 专属服务器上托管 Unity Gaming Services Matchmaker 比赛的常见问题。
我可以在继续使用 Unity 的 UGS 匹配系统(Matchmaker)的同时,将服务器托管在 Edgegap 上吗?
是的。将您的队列和规则保留在 UGS 中,并将 Edgegap 的分配器添加为 Cloud Code 模块。当比赛形成时,它会在 Edgegap 上部署您的服务器,并将地址和端口返回给 UGS,UGS 再将其提供给您的玩家。
适用于 UGS 的 Edgegap 分配器是官方的吗?
是的。这是一个官方且经过 Unity 批准的集成,发布在 Unity 的 matchmaker 托管提供商代码库中。您只需设置应用程序、版本和端口,将令牌添加为 Secret,然后进行部署即可。
我的 Edgegap API 令牌应该配置在 UGS 的哪里?
只能保存在名为 EDGEGAP_API_TOKEN 的 Cloud Code 密钥中,且该密钥需与您的模块和队列位于同一环境中。切勿保存在您的游戏客户端、游戏服务器或项目文件中。
Edgegap 是如何为 UGS 比赛选择服务器位置的?
通过玩家匹配工单中发送的公网 IP 地址,Edgegap 为整个组选取 ping 值最低的位置。如果没有 IP,部署将回退到默认位置。
我应该使用 UGS Matchmaker 还是 Edgegap 的撮合系统?
如果您的游戏已在使用 UGS 的撮合系统或其他 Unity Gaming Services,请继续保留它。Edgegap 的撮合系统采用托管模式,可免费测试,无需 Cloud Code,并能自动在玩家附近部署服务器。

客户
了解更多已接入 Edgegap 的客户案例
提供 31 个从其他平台迁移至 Edgegap 的工作室案例研究。

《以太之战 2》完美的全球发布
Aether Studios
了解Aether Studios是如何快速添加Edgegap并向他们的社区交付完美的启动和后启动服务的。
Case Study

克服因虚拟现实在竞技Multiplay中使用WiFi而引入的延迟
Halfbrick Studios
Discover how Halfbrick successfully launched & maintains a multiplayer-focused Early Access on META Quest's VR platform.
Case Study

MENA的社交应用添加了在线游戏
WOLF
了解这款在中东和北非地区广受欢迎的社交应用如何轻松地将 matchmaking 和多人游戏编排添加到 WOLF Qanawat。
Case Study

混合编排让开球策略随时应对任何流量做好准备
Birch Games
混合编排如何帮助 Birch Games 应对流量——将免流出费用的 Fleets 与无区域限制云相结合。
Case Study

7天血月
The Fun Pimps & iLLOGIKA
了解 Illogika 如何大幅降低服务器成本,并确保提供《七日杀 (7 Days to Die)》玩家所期望的在线体验。
Case Study

真实的在线战争需要终极的协调
Highwire Games
了解Highwire对性能的需求如何需要只有Edgegap才能提供的编排。
Case Study

22,000 条评价、4.8 颗星以及自动扩展的基础架构
Sinn Studios
一个由 Slack 提供支持的简单集成,如何让 Sinn Studio 的热门 VR 游戏快速上线并保持稳定运行。
Case Study

动态服务器编排
Under NDA - AAA Studio
了解世界上最大的AAA工作室之一如何通过边缘计算改善其对等多人游戏体验。
Case Study

对于 AAA 格斗游戏的近零延迟
AAA Studio - Under NDA
一个未宣布的项目如何实现了最低延迟,并改善了其1v1游戏中的公平性。
Case Study

Play Gods with Multiplayer Physics
Squido Studio
Learn how Squido uses Edgegap's highligh optimized game servers to deliver mind-bending & chaotic VR gameplay.
Case Study

全面托管的解决方案为独立游戏节省时间 多人VR恐怖游戏
Dirty Pearl Studios
了解Dirty Pearl Studios如何通过Edgegap的轻松集成和自动编排,以及其Nakama集成,节省了开发时间。
Case Study

即时全球服务器部署以促进协作式XR医学教育
AlensiaXR
AlensiaXR如何利用Edgegap为全球医学生提供低延迟、始终可用的共享解剖课程。
Case Study

守光人:具有专用服务器的 VR 社交合作游戏
Spectral Games
Spectral Games 如何在无需任何服务器经验的情况下,利用 Edgegap Matchmaking 和 Server Browser 为其 VR 社交大厅启动专用服务器。
Case Study

全球范围内快速可靠的部署,适用于PvPvE挑战者Gravebound
Crater Studios
Edgegap 的调度和配对如何帮助 Crater Studios 使他们能够将重心从基础设施转移到游戏玩法上。
Case Study

快速扩展网络元宇宙
Hiber
了解Hiber如何通过Edgegap消除服务器容量规划中的猜测。
Case Study

高硬件要求和自定义游戏服务器池
Alderon Games
了解Alderon Games如何瞬间利用全球多个供应商的自定义游戏服务器池来支持其热门MMO。
Case Study

独立开发者的简单集成
WhaleFood Games
阅读关于WhaleFood Games如何使用Edgegap解决其网络代码问题的文章。
Case Study

推动东南亚首款电子竞技游戏的尖端技术。
Anantarupa Studios
了解Edgegap如何通过一个无缝解决方案简化复杂基础设施和尖端技术,从而改变东南亚的游戏格局。
Case Study

一次打击。全球抵达。
Triple Hill Interactive
Triple Hill Interactive如何利用Edgegap的编排来提供低延迟,并提高在每毫秒都至关重要的游戏类型中的公平性。
Case Study

快节奏团队大逃杀...带着枪的动物毛绒玩具!
SANDYFLOOR
了解一家韩国独立工作室是如何将其多人游戏发布到全球的。
Case Study

移动端赛马游戏凭借即时、高效能的服务器走向全球
Mirai Labs
看 Mirai Labs 如何通过即时服务器部署和细分 vCPU 来运行 Pegaxy Blaze 的全球多人竞速游戏,从而将单个玩家的成本保持在极低水平。
Case Study

服务器管理与分发
Matrioshka Games
阅读关于Matrioshka Games如何在资源有限的情况下发布早期访问的战斗 Royale。
Case Study

听我的信号,释放地狱!
TyGames
探索独立工作室TyGames如何让玩家沉浸在第三人称角斗士战斗的多人游戏中。
Case Study

瞬时全球编排
Soliton Interactive
探索Soliton Interactive如何做到了不可能……首次推出可多人玩的版本!
Case Study

竞技游戏具有服务器端物理引擎,确保理想的低于50毫秒的延迟
NS7
了解为什么仅有Edgegap能够使独立工作室通过服务器端物理和权限实现其AAA质量的免费游戏体育玩法愿景。
Case Study

iGaming的区域部署
X1 Contra 1
X1 Contra 1 通过经济高效的托管和区域部署,为其巴西玩家提供实时 PvP 休闲游戏,确保数据和法律合规。
Case Study

仅在玩家游玩时付费:经济实惠的多人游戏基础设施
Meltdown Interactive
Edgegap 如何帮助独立开发商 Meltdown Interactive Media 在无需复杂方案的情况下,以高性价比解决扩缩容和匹配问题,从而让他们能够专注于游戏开发。
Case Study

同一个 Edgegap 平台,三种截然不同的网络配置
Warped Games
了解 Warped Games 如何在同一个 Edgegap 部署 API 和同一个容器管线上运行社交中心、实时合作以及回合制合作。
Case Study

台球大师巡回赛Max
RETA Games
Case Study

韩国的Web3 POP提取射击游戏走向全球,即刻启程
NDUS Entertainment
XOCIETY 如何轻松地添加 Edgegap 编排并集成自定义 matchmaking,与 Edgegap Ping Beacons 一起优化延迟。
Case Study

Multiplayer in Every Dimension
Arcadia.tv
Discover how Arcadia.tv uses Edgegap's edge network to deliver an innovative, team and location-based athletic VR sport.
Case Study

F2P 移动格斗游戏利用即时(Just-In-Time)服务器降低基础设施成本
Game Changers Worldwide
Game Changer Worldwide 如何在全球移动端托管 Rumble Rush 的实时 3v3 PvP 游戏。
Case Study
他们选择 Edgegap 的关键原因
了解 Edgegap 自动化游戏服务器编排如何带来无缝的多人游戏体验。









