PlayFab MultiplayServer を Deactive にする方法

PlayFab MultiplayServer はActive状態だと課金されてしまうので手動で停止(Deactive)させる方法

### 方法 1 : Playfab REST API の ShutdownMultiplayerServer を使用する

ShutdownMultiplayerServer API の詳細については[こちら](https://docs.microsoft.com/en-us/rest/api/playfab/multiplayer/multiplayerserver/shutdownmultiplayerserver?view=playfab-rest)

Postman で動作確認できるので以下動作確認手順です
(1)Postmanを[ダウンロード](https://www.postman.com/)してインストール

(2)「Import」をクリック
![PF_MPS_Deactive_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/5e19ab2d-5799-3506-55b3-28eef64940d9.png)

(3)「Import From Link」にLinkを追加し「Import」をクリック

```
https://raw.githubusercontent.com/PlayFab/PostmanCollection/master/playfab.json
```
![PF_MPS_Deactive_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/4351a4a2-cb5a-95c1-a5ec-fd25ca7c3ec8.png)

(4)ダウンロードが完了すると「Collecttions」に追加される
もしうまくダウンロードされない場合は直接GitHubから[ダウンロード](https://github.com/PlayFab/PostmanCollection)してInportする
![PF_MPS_Deactive_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/e6c894b8-30b3-f36d-fe22-990f371d75c1.png)

(5)右上の歯車マークをクリック
![PF_MPS_Deactive_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/a33eeba7-c90a-97bd-dae4-df3f8569486f.png)

(6)「Add」をクリック
![PF_MPS_Deactive_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/4160638e-9a3b-cd4e-61fd-9da50421f962.png)

(7)環境変数を各項目それぞれ追加し「Add」をクリック
![PF_MPS_Deactive_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/3a5e5cde-088a-116d-8094-314d8aa20815.png)

|Variable	|Initial Value	   |Current Value|
|---------------|------------------|-----------------
|TitleId	|対象の TitleId	   |対象の TitleId|
|SecretKey	|対象の SecretKey   |対象の SecretKey|
|EntityToken	|空の状態	   |空の状態|

(8)左のツリーから「authentication」配下の GetEntityToken を選択
![PF_MPS_Deactive_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/430f7a52-738d-7b56-a0d7-cc597ecf429c.png)

(9)先ほど設定した環境変数設定に変更し「Send」をクリック
![PF_MPS_Deactive_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/d0c7e055-8346-41b4-56ab-4d137876c950.png)

(10)API 設定項目の [Headers] から、X-Authorization のチェックを外し、再度「Send」をクリック
![PF_MPS_Deactive_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/39998f9a-c16a-9725-7ae3-89875687133a.png)

(11)画面下の Response に ステータス コード 200 が返っていることを確認し、[body] のなかの EntityToken の値をメモる
![PF_MPS_Deactive_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/bf02e14f-747f-02f8-dbcd-82997c5ff9cc.png)

(12)再度右上歯車のマークから環境設定を開き、(7)で空にしていた EntityToken に追記し「Update」をクリック
![PF_MPS_Deactive_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/7bf40335-d890-4da4-15c2-f99295319a76.png)

(13)左ツリー「Multiplayer」配下の「ShutdownMultiplayerServer」を選択
![PF_MPS_Deactive_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/20e83a6b-3a96-b932-a580-daf2cedf2401.png)

(14) 「Headers」 の中の X-EntityToken を 「{EntityToken}」 として、環境変数に定義された値が利用されるようになっていることを確認
![PF_MPS_Deactive_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/10d38596-e453-4094-d89b-d726f35dcb44.png)

(15)「Body」 の BuildId、Region、SessionId の値を、シャットダウンしたいサーバーの情報に設定し、「Send」 をクリック
![PF_MPS_Deactive_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/8bc5c93b-2584-eb18-e72c-ae389baa907a.png)

(16)Response でステータス コード 200 が返り、ポータル上で対象のサーバーが StandingBy 状態に遷移していることを確認

公式のPostman解説URLは[こちら](https://docs.microsoft.com/en-us/gaming/playfab/sdks/postman/postman-quickstart)


### 方法 2 : マッチが終了してユーザーが 0 になったタイミングなどで、サーバー側で Application.Quit() をコールするなどして終了する

サーバー側でユーザー数が 0 になったタイミングで終了させる方法です。
フォーラムで[投稿](https://community.playfab.com/questions/30360/how-do-you-properly-shut-down-a-game-server-runnin.html)されています。
→Application.Quit()が呼ばれたときに、数秒以内にサーバインスタンスが停止してActiveからStandByに切り替わるはず