> ## 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 プラットフォームは、[Unity](https://unity.com/) ゲーム サーバーに統合できる GSDK ライブラリを提供します。このライブラリはオープンソースで、[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 package ファイル](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>
  ゲーム サーバーの状態に関する詳細は、「Basics of a PlayFab game server」セクション [こちら](/services/playfab/multiplayer/servers/basics-of-a-playfab-game-server) を参照してください
</Note>

さらに、ゲーム サーバー上で次のコールバックを実装できます:

* `PlayFabMultiplayerAgentAPI.OnMaintenanceCallback` は、Azure が VM でメンテナンスを実行する必要があるときにトリガーされます
* `PlayFabMultiplayerAgentAPI.OnShutDownCallback` は、終了通知を受信したときにトリガーされます
* `PlayFabMultiplayerAgentAPI.OnAgentErrorCallback` は、ゲーム サーバーと PlayFab VM Agent との通信でエラーが発生した場合にトリガーされます

<Note>
  GSDK サンプルの詳細については、MPS Samples リポジトリ [こちら](https://github.com/PlayFab/MpsSamples) をご覧ください
</Note>


## Related topics

- [Unity で GDK を使用する](/ja-jp/build/gdk-and-engines/unity/unity.md)
- [クイックスタート Android](/ja-jp/services/playfab/sdks/c/quickstart-android.md)
- [カスタム C/C++ エンジンに GDK を統合する](/ja-jp/build/gdk-and-engines/custom-engine.md)
- [マーケットプレイス統合 - Steam](/ja-jp/services/playfab/economy-monetization/economy-v2/marketplace/marketplace-integrations/steam.md)
- [Multiplayer Android スタート ガイド](/ja-jp/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/android-specific-requirements.md)
