> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 将 PlayFab GSDK 集成到 Unity 中

> 将 PlayFab Game Server SDK (GSDK) 集成到 Unity 专用服务器项目中,以便使用 UnityGsdk 库在 PlayFab Multiplayer Servers 上托管构建。

Multiplayer Servers 平台提供了一个 GSDK 库,你可以将其集成到你的 [Unity](https://unity.com/) 游戏服务器中。该库是开源的,可以在 [GitHub 上的 GSDK 存储库](https://github.com/PlayFab/gsdk/tree/master/UnityGsdk)中找到。

## 安装

你可以将 [Assets/PlayFabSdk](https://github.com/PlayFab/gsdk/tree/master/UnityGsdk/Assets/PlayFabSdk) 文件夹复制到你的 Unity 项目中。之后,你需要在 Unity 构建设置上启用脚本指令 `ENABLE_PLAYFABSERVER_API`([示例](https://user-images.githubusercontent.com/8256138/81462605-a6d7ac80-9168-11ea-9748-110ed01095c2.png))。
或者,你可以使用提供的 [Unity 包文件](https://github.com/PlayFab/gsdk/blob/main/UnityGsdk/MpsGsdk.unitypackage)。
你可以在 [MultiplayerServerSample](https://github.com/PlayFab/gsdk/tree/main/UnityGsdk/Assets/PlayFabSdk) 项目中找到示例代码。

## 用法

至少,你需要实现 `PlayFabMultiplayerAgentAPI.Start()` 方法,并为 `PlayFabMultiplayerAgentAPI.ReadyForPlayers()` 方法启动一个[协程](https://docs.unity3d.com/Manual/Coroutines.html),如下面的代码所示

```csharp theme={null}
//...
StartCoroutine(ReadyForPlayers());
//...

private IEnumerator ReadyForPlayers()
{
    yield return new WaitForSeconds(.5f);
    PlayFabMultiplayerAgentAPI.ReadyForPlayers();
}
```

你还会希望通过 `PlayFabMultiplayerAgentAPI.OnServerActiveCallback` 注册游戏服务器过渡到 Active 状态的事件,如下例所示:

```csharp theme={null}
PlayFabMultiplayerAgentAPI.OnServerActiveCallback += OnServerActive;
// ...
private void OnServerActive()
{
    Debug.Log("Server Started From Agent Activation");
    // players can now connect to the server
}
```

<Note>
  有关游戏服务器状态的更多信息,请查看[此处](/services/playfab/multiplayer/servers/basics-of-a-playfab-game-server)的 PlayFab 游戏服务器基础知识部分
</Note>

此外,你可以在游戏服务器上实现以下回调:

* `PlayFabMultiplayerAgentAPI.OnMaintenanceCallback` 在 Azure 需要对 VM 执行维护时触发
* `PlayFabMultiplayerAgentAPI.OnShutDownCallback` 在收到终止通知时触发
* `PlayFabMultiplayerAgentAPI.OnAgentErrorCallback` 在游戏服务器与 PlayFab VM Agent 通信之间出现任何错误时触发

<Note>
  有关更多 GSDK 示例,你可以在[此处](https://github.com/PlayFab/MpsSamples)查看我们的 MPS 示例存储库
</Note>


## Related topics

- [集成 PlayFab Unreal Engine Marketplace 插件](/zh-CN/services/playfab/multiplayer/networking/party-unreal-engine-oss-playfab-plugin-integration.md)
- [将 Experiments 与其他 PlayFab 服务集成](/zh-CN/services/playfab/live-service-management/game-configuration/experiments/experiments-other-services.md)
- [Android 快速入门](/zh-CN/services/playfab/sdks/c/quickstart-android.md)
- [Multiplayer Android 入门](/zh-CN/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/android-specific-requirements.md)
- [将 GDK 集成到自定义 C/C++ 引擎](/zh-CN/build/gdk-and-engines/custom-engine.md)
