

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon GameLift Servers 適用於伺服器 SDK 4 的 Unity 外掛程式
<a name="unity-plug-in-sdk4"></a>

**注意**  
本主題提供 Unity 舊版Amazon GameLift Servers 外掛程式的資訊。1.x 版使用適用於 4.x Amazon GameLift Servers 或更早版本的伺服器 SDK。如需使用伺服器 SDK 5.x 並支援 Amazon GameLift Servers Anywhere 和受管容器託管等較新功能之最新外掛程式版本的文件，請參閱 [Amazon GameLift Servers Unity 的外掛程式 （伺服器 SDK 5.x)](unity-plug-in.md)。

Amazon GameLift Servers 提供工具，讓您的多玩家遊戲伺服器準備好在 上執行Amazon GameLift Servers。Unity 的 Amazon GameLift Servers 外掛程式可讓您更輕鬆地整合Amazon GameLift Servers到 Unity 遊戲專案，並部署雲端託管Amazon GameLift Servers的資源。使用 Unity 的 外掛程式來存取 Amazon GameLift Servers APIs，並針對常見的遊戲案例部署 AWS CloudFormation 範本。

設定外掛程式之後，您可以在 GitHub 上嘗試 [Amazon GameLift Servers Unity 範例](https://github.com/aws-samples/amazon-gamelift-unity)。

**Topics**
+ [Amazon GameLift Servers 與 Unity 遊戲伺服器專案整合](integration-unity-server-sdk4.md)
+ [Amazon GameLift Servers 與 Unity 遊戲用戶端專案整合](integration-unity-client-sdk4.md)
+ [安裝和設定 外掛程式](#unity-plug-in-sdk4-install)
+ [在本機測試您的遊戲](#unity-plug-in-sdk4-test)
+ [部署案例](#unity-plug-in-sdk4-scenario)
+ [將遊戲與 Unity Amazon GameLift Servers中的 整合](#unity-plug-in-sdk4-integration-intro)
+ [匯入並執行範例遊戲](#unity-plug-in-sdk4-sample-game)

## 安裝和設定 外掛程式
<a name="unity-plug-in-sdk4-install"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

本節說明如何下載、安裝和設定 Unity 的Amazon GameLift Servers 外掛程式 1.0.0 版。

**先決條件**
+ Unity for Windows 2019.4 LTS、Windows 2020.3 LTS 或 Unity for MacOS
+ Java 的目前版本
+ .NET 4.x 的目前版本

**下載並安裝 Unity 的 外掛程式**

1. 下載 Unity 的Amazon GameLift Servers 外掛程式。您可以在 [Amazon GameLift Servers Unity 儲存庫的外掛程式](https://github.com/aws/amazon-gamelift-plugin-unity/releases)頁面上找到最新版本。在[最新版本](https://github.com/aws/amazon-gamelift-plugin-unity/releases)下，選擇**資產**，然後下載 `com.amazonaws.gamelift-version.tgz` 檔案。

1. 啟動 Unity 並選擇專案。

1. 在頂端導覽列的**視窗**下，選擇**套件管理員**：  
![視窗下的統一選單，已選取套件管理員。](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/unitypi_install_pkgmgr.png)

1. 在**套件管理員**索引標籤下，選擇 **\+**，然後選擇**從 tarball 新增套件...**：  
![在套件管理員索引標籤的 + 圖示下，從反白顯示的 tarball 新增套件。](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/unitypi_install_tarball.png)

1. 在在**磁碟上選取套件**視窗中，導覽至 `com.amazonaws.gamelift` 資料夾，選擇檔案 `com.amazonaws.gamelift-version.tgz `，然後選擇**開啟**：  
![在磁碟視窗的選取套件中選擇 tarball 檔案。](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/unitypi_install_tarballselect.png)

1. Unity 載入外掛程式後， **Amazon GameLift Servers** 會在 Unity 功能表中顯示為新項目。安裝和重新編譯指令碼可能需要幾分鐘的時間。**Amazon GameLift Servers 外掛程式設定**索引標籤會自動開啟。  
![Amazon GameLift Servers Unity 外掛程式設定選單的外掛程式。](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/unitypi_install_done_ui.png)

1. 在 **SDK** 窗格中，選擇**使用 .NET 4.x。**

   設定後，狀態會從**未設定**變更為**已設定**。

## 在本機測試您的遊戲
<a name="unity-plug-in-sdk4-test"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

使用 Amazon GameLift Servers Local 在Amazon GameLift Servers本機裝置上執行 。您可以使用 Amazon GameLift Servers Local 在幾秒鐘內驗證程式碼變更，無需網路連線。

### 設定本機測試
<a name="unity-plug-in-sdk4-test-cfgtesting"></a>

1. 在 Unity 的外掛程式視窗中，選擇**測試**索引標籤。

1. 在**測試**窗格中，選擇**下載Amazon GameLift Servers本機**。Unity 的 外掛程式會開啟瀏覽器視窗，並將`GameLift_06_03_2021.zip`檔案下載到您的下載資料夾。

   下載包含 C\# 伺服器 SDK、.NET 來源檔案，以及與 Unity 相容的 .NET 元件。

1. 解壓縮所下載的 `GameLift_06_03_2021.zip` 檔案。

1. 在**Amazon GameLift Servers外掛程式設定**視窗中，選擇**Amazon GameLift Servers本機路徑**，導覽至解壓縮資料夾，選擇檔案 `GameLiftLocal.jar`，然後選擇**開啟**。

   設定後，本機測試狀態會從**未設定**變更為**已設定**。

1. 驗證 JRE 的狀態。如果狀態為**未設定**，請選擇**下載 JRE** 並安裝建議的 Java 版本。

   安裝和設定 Java 環境之後，狀態會變更為**已設定**。

### 執行您的本機遊戲
<a name="unity-plug-in-sdk4-test-cfgrunning"></a>

1. 在 Unity 的外掛程式索引標籤中，選擇**測試**索引標籤。

1. 在**測試**窗格中，選擇**開啟本機測試 UI**。

1. 在**本機測試**視窗中，指定**伺服器可執行檔路徑**。選取 **...** 以選取伺服器應用程式的路徑和可執行檔名稱。

1. 在**本機測試**視窗中，指定 **GL 本機連接埠**。

1. 選擇**部署和執行**以部署和執行伺服器。

1. 若要停止遊戲伺服器，請選擇**停止**或關閉遊戲伺服器視窗。

## 部署案例
<a name="unity-plug-in-sdk4-scenario"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

案例使用 CloudFormation 範本來建立部署遊戲雲端託管解決方案所需的資源。本節說明提供的案例及其使用Amazon GameLift Servers方式。

**先決條件**  
若要部署案例，您需要 Amazon GameLift Servers服務的 IAM 角色。如需如何為 建立角色的資訊Amazon GameLift Servers，請參閱 [設定 AWS 使用者帳戶](setting-up-aws-login.md)。

每個案例都需要下列資源的許可：
+ Amazon GameLift Servers
+ Amazon S3
+ CloudFormation
+ API Gateway
+ AWS Lambda
+ AWS WAFV2
+ Amazon Cognito

### 案例
<a name="unity-plug-in-sdk4-scenario-examples"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

Unity 的Amazon GameLift Servers外掛程式包含下列案例：

**僅驗證**  
此案例會建立遊戲後端服務，在沒有遊戲伺服器功能的情況下執行玩家身分驗證。範本會在您的帳戶中建立下列資源：
+ 存放玩家身分驗證資訊的 Amazon Cognito 使用者集區。
+ Amazon API Gateway REST 端點後端 AWS Lambda 處理常式，可啟動遊戲並檢視遊戲連線資訊。

**單一區域機群**  
此案例會使用單一Amazon GameLift Servers機群建立遊戲後端服務。它會建立下列資源：
+ 玩家驗證和啟動遊戲的 Amazon Cognito 使用者集區。
+ 用來搜尋機群上具有開啟玩家位置之現有遊戲工作階段的 AWS Lambda 處理常式。如果找不到開啟的插槽，則會建立新的遊戲工作階段。

**具有佇列和自訂配對建構器的多區域機群**  
此案例使用Amazon GameLift Servers佇列和自訂配對建構器來組成配對，將等待集區中最舊的玩家分組在一起。它會建立下列資源：
+ 發佈訊息的 Amazon Simple Notification Service Amazon GameLift Servers 主題。如需 SNS 主題和通知的詳細資訊，請參閱 [設定遊戲工作階段放置的事件通知](queue-notification.md)。
+ 由訊息呼叫的 Lambda 函數，用於傳達置放和遊戲連線詳細資訊。
+ 用於存放置放和遊戲連線詳細資訊的 Amazon DynamoDB 資料表。 會`GetGameConnection`呼叫從此資料表讀取，並將連線資訊傳回至遊戲用戶端。

**具有佇列和自訂配對建構器的 Spot 機群**  
此案例使用Amazon GameLift Servers佇列和自訂配對建構器來形成配對，並設定三個機群。它會建立下列資源：
+ 包含不同執行個體類型的兩個 Spot 機群，可為 Spot 無法使用提供耐用性。
+ 做為其他 Spot 機群備份的隨需機群。如需設計機群的詳細資訊，請參閱 [託管資源自訂](fleets-design.md)。
+ 保持伺服器可用性高且成本低的Amazon GameLift Servers佇列。如需佇列的詳細資訊和最佳實務，請參閱 [自訂遊戲工作階段佇列](queues-design.md)。

**FlexMatch**  
此案例使用受管配對服務 FlexMatch，將遊戲玩家配對在一起。如需 的詳細資訊FlexMatch，請參閱[什麼是Amazon GameLift Servers FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-intro.html)。此案例會建立下列資源：
+ 在收到`StartGame`請求後建立配對票證的 Lambda 函數。
+ 用來接聽FlexMatch相符事件的個別 Lambda 函數。

為了避免您的 產生不必要的費用 AWS 帳戶，請在完成使用後移除每個案例建立的資源。刪除對應的 CloudFormation 堆疊。

### 更新 AWS 登入資料
<a name="unity-plug-in-sdk4-configure-creds"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

Unity 的 Amazon GameLift Servers 外掛程式需要安全登入資料才能部署案例。您可以建立新的登入資料或使用現有的登入資料。

如需設定登入資料的詳細資訊，請參閱[了解並取得您的 AWS 登入](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html)資料。

**更新 AWS 登入資料**

1. 在 Unity 的 Unity 外掛程式索引標籤中，選擇**部署**索引標籤。

1. 在**部署**窗格中，選擇**AWS 登入資料**。

1. 您可以建立新的 AWS 登入資料或選擇現有的登入資料。
   + 若要建立登入資料，請選擇**建立新的登入資料設定檔**，然後指定**新設定檔名稱**、**AWS 存取金鑰 ID**、**AWS 私密金鑰**和 **AWS 區域**。
   + 若要選擇現有的登入資料，請選擇**選擇現有的登入資料設定檔**，然後選擇設定檔名稱 和 **AWS 區域**。

1. 在**更新 AWS 登入**資料視窗中，選擇**更新登入資料設定檔**。

### 更新帳戶引導
<a name="unity-plug-in-sdk4-scenario-boot"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

引導位置是在部署期間使用的 Amazon S3 儲存貯體。它用於存放遊戲伺服器資產和其他相依性。 AWS 區域 您為儲存貯體選擇的 必須與用於案例部署的 區域相同。

如需 Amazon S3 儲存貯體的詳細資訊，請參閱[建立、設定和使用 Amazon Simple Storage Service 儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)。

**更新帳戶引導位置**

1. 在 Unity 的 Unity 外掛程式索引標籤中，選擇**部署**索引標籤。

1. 在**部署**窗格中，選擇**更新帳戶引導**。

1. 在**帳戶引導**視窗中，您可以選擇現有的 Amazon S3 儲存貯體或建立新的 Amazon S3 儲存貯體：
   + 若要選擇現有的儲存貯體，請選擇**選擇現有的 Amazon S3 儲存貯**體並**更新**以儲存您的選擇。
   + 選擇**建立新的 Amazon S3 儲存貯**體以建立新的 Amazon Simple Storage Service 儲存貯體，然後選擇**政策**。此政策會指定 Amazon S3 儲存貯體的過期時間。選擇**建立**以建立儲存貯體。

### 部署遊戲案例
<a name="unity-plug-in-sdk4-scenario-deploy"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

您可以使用 案例來測試您的遊戲Amazon GameLift Servers。每個案例都使用 CloudFormation 範本來建立具有所需資源的堆疊。大多數案例都需要遊戲伺服器可執行檔和建置路徑。當您部署案例時， 會將遊戲資產Amazon GameLift Servers複製到引導位置，做為部署的一部分。

您必須設定 AWS 登入資料和 AWS 帳戶引導才能部署案例。

**部署案例**

1. 在 Unity 的 Unity 外掛程式索引標籤中，選擇**部署**索引標籤。

1. 在**部署**窗格中，選擇**開啟部署 UI**。

1. 在**部署**視窗中，選擇案例。

1. 輸入**遊戲名稱**。它必須獨一無二。當您部署案例時，遊戲名稱是 CloudFormation 堆疊名稱的一部分。

1. 選擇**遊戲伺服器建置資料夾路徑**。組建資料夾路徑指向包含伺服器可執行檔和相依性的資料夾。

1. 選擇**遊戲伺服器建置 .exe 檔案路徑**。建置可執行檔路徑指向遊戲伺服器可執行檔。

1. 選擇**開始部署**以開始部署案例。您可以在**目前狀態**下的**部署**視窗中遵循更新的狀態。部署可能需要幾分鐘的時間。  
![案例部署狀態更新](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/unitypi_deploy_statex.png)

1. 當案例完成部署時，**目前狀態**會更新為包含 **Cognito 用戶端 ID **和 **API Gateway 端點**，您可以複製並貼到遊戲中。  
![案例部署狀態更新](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/unitypi_deploy_statedone.png)

1. 若要更新遊戲設定，請在 Unity 功能表中，選擇**移至用戶端連線設定**。這會在 Unity 畫面右側顯示 **Inspector** 標籤。

1. 取消選取**本機測試模式**。

1. 輸入 **API Gateway 端點**和 **Coginito 用戶端 ID**。選擇 AWS 區域 您用於案例部署的相同 。然後，您可以使用部署的案例資源重建和執行遊戲用戶端。

### 刪除案例建立的資源
<a name="unity-plug-in-sdk4-scenario-delete"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

若要刪除為案例建立的資源，請刪除對應的 CloudFormation 堆疊。

**刪除案例建立的資源**

1. 在 Unity **Deployment** 的Amazon GameLift Servers 外掛程式視窗中，選取**檢視 AWS CloudFormation 主控台**以開啟 CloudFormation 主控台。

1. 在 CloudFormation 主控台中，選擇 **Stacks**，然後選擇包含部署期間指定遊戲名稱的堆疊。

1. 選擇**刪除**以刪除堆疊。刪除堆疊可能需要幾分鐘的時間。在 CloudFormation 刪除案例使用的堆疊後，其狀態會變更為 `ROLLBACK_COMPLETE`。

## 將遊戲與 Unity Amazon GameLift Servers中的 整合
<a name="unity-plug-in-sdk4-integration-intro"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

完成下列任務Amazon GameLift Servers，將您的 Unity 遊戲與 整合：
+ [Amazon GameLift Servers 與 Unity 遊戲伺服器專案整合](integration-unity-server-sdk4.md)
+ [Amazon GameLift Servers 與 Unity 遊戲用戶端專案整合](integration-unity-client-sdk4.md)

下圖顯示整合遊戲的範例流程。在圖表中，具有遊戲伺服器的機群會部署到 Amazon GameLift Servers。遊戲用戶端會與遊戲伺服器通訊，其會與 通訊Amazon GameLift Servers。

![整合 Unity 與 的架構圖Amazon GameLift Servers。](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/unity_diagram.png)


## 匯入並執行範例遊戲
<a name="unity-plug-in-sdk4-sample-game"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

Unity 的 Amazon GameLift Servers 外掛程式包含範例遊戲，可用來探索整合遊戲與 的基本概念Amazon GameLift Servers。在本節中，您會建置遊戲用戶端和遊戲伺服器，然後使用 Amazon GameLift Servers Local 在本機進行測試。

### 先決條件
<a name="unity-plug-in-sdk4-sample-game-prereq"></a>
+ [設定 AWS 使用者帳戶](setting-up-aws-login.md)
+ [安裝和設定 外掛程式](#unity-plug-in-sdk4-install)

### 建置並執行範例遊戲伺服器
<a name="unity-plug-in-sdk4-sample-game-build"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

設定範例遊戲的遊戲伺服器檔案。

1. 在 Unity 的選單上，選擇 **Amazon GameLift Servers**，然後選擇**匯入範例遊戲**。

1. 在**匯入範例遊戲**視窗中，選擇**匯入**以匯入遊戲、其資產和相依性。

1. 建置遊戲伺服器。在 Unity 的選單上，選擇 **Amazon GameLift Servers**，然後選擇**套用 Windows 範例伺服器建置設定**或**套用 MacOS 範例伺服器建置設定**。設定遊戲伺服器設定後，Unity 會重新編譯資產。

1. 在 Unity 的功能表中，選擇**檔案**，然後選擇**建置**。選擇**伺服器建置**，選擇**建置**，然後選擇專門用於伺服器檔案的建置資料夾。

   Unity 會建置範例遊戲伺服器，將可執行檔和必要的資產放在指定的建置資料夾中。

### 建置並執行範例遊戲用戶端
<a name="unity-plug-in-sdk4-sample-game-client"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

設定範例遊戲的遊戲用戶端檔案。

1. 在 Unity 的選單上，選擇 **Amazon GameLift Servers**，然後選擇**套用 Windows 範例用戶端建置設定**或**套用 MacOS 範例用戶端建置設定**。設定遊戲用戶端設定後，Unity 會重新編譯資產。

1. 在 Unity 的功能表中，選取**移至用戶端設定**。這會在 Unity 畫面右側顯示 **Inspector** 標籤。在**Amazon GameLift Servers用戶端設定**索引標籤中，選取**本機測試模式**。

1. 建置遊戲用戶端。在 Unity 的功能表中，選擇**檔案**。確認未勾選**伺服器建置**，選擇**建置**，然後特別為用戶端檔案選取建置資料夾。

   Unity 會建置範例遊戲用戶端，將可執行檔和必要的資產放在指定的用戶端建置資料夾中。

1. 您尚未建置遊戲伺服器和用戶端。在後續步驟中，您會執行遊戲，並查看它如何與 互動Amazon GameLift Servers。

### 在本機測試範例遊戲
<a name="unity-plug-in-sdk4-sample-game-test"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

執行您使用 Amazon GameLift Servers Local 匯入的範例遊戲。

1. 啟動遊戲伺服器。在 Unity 的 Unity 外掛程式索引標籤中，選擇**部署**索引標籤。

1. 在**測試**窗格中，選擇**開啟本機測試 UI**。

1. 在**本機測試**視窗中，指定**遊戲伺服器 .exe 檔案路徑**。路徑必須包含可執行檔名稱。例如 `C:/MyGame/GameServer/MyGameServer.exe`。

1. 選擇**部署和執行**。Unity 的 外掛程式會啟動遊戲伺服器，並開啟Amazon GameLift Servers本機日誌視窗。視窗包含日誌訊息，包括在遊戲伺服器與 Amazon GameLift Servers Local 之間傳送的訊息。

1. 啟動遊戲用戶端。使用範例遊戲用戶端尋找建置位置，然後選擇可執行檔 。

1. 在**Amazon GameLift Servers範例遊戲**中，提供電子郵件和密碼，然後選擇**登入**。電子郵件和密碼未經驗證或使用。

1. 在**Amazon GameLift Servers範例遊戲**中，選擇**開始**。遊戲用戶端會尋找遊戲工作階段。如果找不到工作階段，則會建立一個工作階段。遊戲用戶端接著會啟動遊戲工作階段。您可以在日誌中查看遊戲活動。

#### 遊戲伺服器日誌範例
<a name="unity-plug-in-sdk4-example-logs"></a>

```
...
2021-09-15T19:55:3495 PID:20728 Log :) GAMELIFT AWAKE 
2021-09-15T19:55:3512 PID:20728 Log :) I AM SERVER 
2021-09-15T19:55:3514 PID:20728 Log :) GAMELIFT StartServer at port 33430. 
2021-09-15T19:55:3514 PID:20728 Log :) SDK VERSION: 4.0.2 
2021-09-15T19:55:3556 PID:20728 Log :) SERVER IS IN A GAMELIFT FLEET 
2021-09-15T19:55:3577 PID:20728 Log :) PROCESSREADY SUCCESS. 
2021-09-15T19:55:3577 PID:20728 Log :) GAMELIFT HEALTH CHECK REQUESTED (HEALTHY)
...
2021-09-15T19:55:3634 PID:20728 Log :) GAMELOGIC AWAKE 
2021-09-15T19:55:3635 PID:20728 Log :) GAMELOGIC START 
2021-09-15T19:55:3636 PID:20728 Log :) LISTENING ON PORT 33430 
2021-09-15T19:55:3636 PID:20728 Log SERVER: Frame: 0 HELLO WORLD! 
...
2021-09-15T19:56:2464 PID:20728 Log :) GAMELIFT SESSION REQUESTED
2021-09-15T19:56:2468 PID:20728 Log :) GAME SESSION ACTIVATED
2021-09-15T19:56:3578 PID:20728 Log :) GAMELIFT HEALTH CHECK REQUESTED (HEALTHY)
2021-09-15T19:57:3584 PID:20728 Log :) GAMELIFT HEALTH CHECK REQUESTED (HEALTHY)
2021-09-15T19:58:0334 PID:20728 Log SERVER: Frame: 8695 Connection accepted: playerIdx 0 joined
2021-09-15T19:58:0335 PID:20728 Log SERVER: Frame: 8696 Connection accepted: playerIdx 1 joined 
2021-09-15T19:58:0338 PID:20728 Log SERVER: Frame: 8697 Msg rcvd from playerIdx 0 Msg: CONNECT: server IP localhost 
2021-09-15T19:58:0338 PID:20728 Log SERVER: Frame: 8697 Msg rcvd from player 0:CONNECT: server IP localhost 
2021-09-15T19:58:0339 PID:20728 Log SERVER: Frame: 8697 CONNECT: player index 0 
2021-09-15T19:58:0339 PID:20728 Log SERVER: Frame: 8697 Msg rcvd from playerIdx 1 Msg: CONNECT: server IP localhost 
2021-09-15T19:58:0339 PID:20728 Log SERVER: Frame: 8697 Msg rcvd from player 1:CONNECT: server IP localhost 
2021-09-15T19:58:0339 PID:20728 Log SERVER: Frame: 8697 CONNECT: player index 1
```

#### 範例Amazon GameLift Servers本機日誌
<a name="unity-plug-in-sdk4-example-locallogs"></a>

```
12:55:26,000  INFO || - [SocketIOServer] main - Session store / pubsub factory used: MemoryStoreFactory (local session store only)
12:55:28,092  WARN || - [ServerBootstrap] main - Unknown channel option 'SO_LINGER' for channel '[id: 0xe23d0a14]'
12:55:28,101  INFO || - [SocketIOServer] nioEventLoopGroup-2-1 - SocketIO server started at port: 5757
12:55:28,101  INFO || - [SDKConnection] main - GameLift SDK server (communicates with your game server) has started on http://localhost:5757
12:55:28,120  INFO || - [SdkWebSocketServer] WebSocketSelector-20 - WebSocket Server started on address localhost/127.0.0.1:5759
12:55:28,166  INFO || - [StandAloneServer] main - GameLift Client server (listens for GameLift client APIs) has started on http://localhost:8080
12:55:28,179  INFO || - [StandAloneServer] main - GameLift server sdk http listener has started on http://localhost:5758
12:55:35,453  INFO || - [SdkWebSocketServer] WebSocketWorker-12 - onOpen socket: /?pID=20728&sdkVersion=4.0.2&sdkLanguage=CSharp and handshake /?pID=20728&sdkVersion=4.0.2&sdkLanguage=CSharp
12:55:35,551  INFO || - [HostProcessManager] WebSocketWorker-12 - client connected with pID 20728
12:55:35,718  INFO || - [GameLiftSdkHttpHandler] GameLiftSdkHttpHandler-thread-0 - GameLift API to use: ProcessReady for pId 20728
12:55:35,718  INFO || - [ProcessReadyHandler] GameLiftSdkHttpHandler-thread-0 - Received API call for processReady from 20728
12:55:35,738  INFO || - [ProcessReadyHandler] GameLiftSdkHttpHandler-thread-0 - onProcessReady data: port: 33430
 12:55:35,739  INFO || - [HostProcessManager] GameLiftSdkHttpHandler-thread-0 - Registered new process with pId 20728
12:55:35,789  INFO || - [GameLiftSdkHttpHandler] GameLiftSdkHttpHandler-thread-0 - GameLift API to use: ReportHealth for pId 20728
12:55:35,790  INFO || - [ReportHealthHandler] GameLiftSdkHttpHandler-thread-0 - Received API call for ReportHealth from 20728
12:55:35,794  INFO || - [ReportHealthHandler] GameLiftSdkHttpHandler-thread-0 - ReportHealth data: healthStatus: true
 12:56:24,098  INFO || - [GameLiftHttpHandler] Thread-12 - API to use: GameLift.DescribeGameSessions
12:56:24,119  INFO || - [DescribeGameSessionsDispatcher] Thread-12 - Received API call to describe game sessions with input: {"FleetId":"fleet-123"}
12:56:24,241  INFO || - [GameLiftHttpHandler] Thread-12 - API to use: GameLift.CreateGameSession
12:56:24,242  INFO || - [CreateGameSessionDispatcher] Thread-12 - Received API call to create game session with input: {"FleetId":"fleet-123","MaximumPlayerSessionCount":4}
12:56:24,265  INFO || - [HostProcessManager] Thread-12 - Reserved process: 20728 for gameSession: arn:aws:gamelift:local::gamesession/fleet-123/gsess-59f6cc44-4361-42f5-95b5-fdb5825c0f3d
12:56:24,266  INFO || - [WebSocketInvoker] Thread-12 - StartGameSessionRequest: gameSessionId=arn:aws:gamelift:local::gamesession/fleet-123/gsess-59f6cc44-4361-42f5-95b5-fdb5825c0f3d, fleetId=fleet-123, gameSessionName=null, maxPlayers=4, properties=[], ipAddress=127.0.0.1, port=33430, gameSessionData?=false, matchmakerData?=false, dnsName=localhost
12:56:24,564  INFO || - [CreateGameSessionDispatcher] Thread-12 - GameSession with id: arn:aws:gamelift:local::gamesession/fleet-123/gsess-59f6cc44-4361-42f5-95b5-fdb5825c0f3d created
12:56:24,585  INFO || - [GameLiftHttpHandler] Thread-12 - API to use: GameLift.DescribeGameSessions
12:56:24,585  INFO || - [DescribeGameSessionsDispatcher] Thread-12 - Received API call to describe game sessions with input: {"FleetId":"fleet-123"}
12:56:24,660  INFO || - [GameLiftSdkHttpHandler] GameLiftSdkHttpHandler-thread-0 - GameLift API to use: GameSessionActivate for pId 20728
12:56:24,661  INFO || - [GameSessionActivateHandler] GameLiftSdkHttpHandler-thread-0 - Received API call for GameSessionActivate from 20728
12:56:24,678  INFO || - [GameSessionActivateHandler] GameLiftSdkHttpHandler-thread-0 - GameSessionActivate data: gameSessionId: "arn:aws:gamelift:local::gamesession/fleet-123/gsess-59f6cc44-4361-42f5-95b5-fdb5825c0f3d"
```

### 關閉伺服器程序
<a name="unity-plug-in-sdk4-shut-down"></a>

**注意**  
本主題參考 Unity 1.0.0 版的Amazon GameLift Servers 外掛程式，其使用伺服器 SDK 4.x 或更早版本。

完成範例遊戲後，請在 Unity 中關閉伺服器。

1. 在遊戲用戶端中，選擇**結束**或關閉視窗以停止遊戲用戶端。

1. 在 Unity 的**本機測試**視窗中，選擇**停止**或關閉遊戲伺服器視窗以停止伺服器。