設定適用於 Unity 的 AWS Mobile SDK - AWSMobile SDK for Unity

所以此AWS適用於 Unity 的 Mobile SDK 現已包含在AWS SDK for .NET。本指南引用適用於 Unity 的 Mobile SDK 的存檔版本。如需詳細資訊,請參閱「」什麼是AWS適用於 Unity 的 Mobile SDK?

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

設定適用於 Unity 的 AWS Mobile SDK

要開始使用適用於 Unity 的 AWS 移動開發工具包,您可以設置軟件開發工具包並開始構建新項目,也可以將開發工具包與現有項目集成。您也可以複製並執行樣本來瞭解 SDK 的工作原理。

先決條件

您需要有下列資訊,才能使用適用於 Unity 的 AWS Mobile SDK:

  • 一個 AWS 帳户

  • 統一版本 4.x 或 5.x(如果要編寫在 iOS 64 位上運行的應用程序,則需要統一 4.6.4p4 或統一 5.0.1p3)

完成先決條件之後,您需要執行以下動作:

  1. 下載適用於 Unity 的 AWS Mobile SDK。

  2. 配定適用於 Unity 的 AWS Mobile SDK。

  3. 使用 Amazon Cognito 託獲取 AWS 證書。

步驟 1:下載適用於 Unity 的 AWS Mobile SDK

首先,下載適用於 Unity 的 AWS Mobile SDK。軟件開發工具包中的每個軟件包都需要根據軟件包的名稱使用相應的 AWS 服務。例如,aws-unity-sdk-DynamoDB 庫 -2.1.0.0.0.0 單元軟件包用於調用 AWS 動態數據庫服務。您可以導入所有軟件包或只導入您想要使用的軟件包。

  1. 打開 Unity 編輯器並創建一個新的空項目,使用默認設置。

  2. 選擇資產 >導入套件 >自訂套件

  3. 在 中匯入Package (套件) 對話框中,導覽到並選擇您想要使用的 .unityPackage (.unityPackage)。

  4. 在 中匯入包對話框中,確保選中所有項目,然後單擊匯入

步驟 2:配定適用於 Unity 的 AWS Mobile SDK

建立場景

使用適用於 Unity 的 AWS Mobile SDK 時,您可以在Start或者Awake單聲道行為類的方法:

UnityInitializer.AttachToGameObject(this.gameObject);

通過選擇新建場景來自File (檔案)選單。

適用於 Unity 的 AWS 開發工具包包含其支持的每項 AWS 服務的客户端類。這些客户端使用名為awsconfig.xml。下列部分將介紹awsconfig.xmlfile. 如需這些設定的詳細資訊,請參Unity SDK API 參考

設置默認 AWS 服務區域

若要為所有服務用户端配定預設區域:

<aws region="us-west-2" />

這將為 Unity SDK 中的所有服務客户端設置默認區域。可通過在創建服務客户端實例時顯式指定區域來覆蓋此設置,如下所示:

IAmazonS3 s3Client = new AmazonS3Client(<credentials>,RegionEndpoint.USEast1);

設定記錄信息

日誌記錄設置指定如下:

<logging logTo="UnityLogger" logResponses="Always" logMetrics="true" logMetricsFormat="JSON" />

此設置用於在 Unity 中配置日誌記錄。當您登錄到UnityLogger,框架內部將輸出打印到調試日誌。如果要記錄 HTTP 響應,請設置 logResponses Resples 標誌-值可以是「始終」、「從不」或OnError。您還可以使用 LogMetrics 屬性記錄 HTTP 請求的性能度量,可以使用LogMetrics格式屬性,有效值為 JSON 或標準值。

下列範例顯示 awsconfig.xml 文件中最常用的設定。有關特定服務設置的詳細信息,請參閲下面的服務部分:

<?xml version="1.0" encoding="utf-8"?> <aws region="us-west-2" <logging logTo="UnityLogger" logResponses="Always" logMetrics="true" logMetricsFormat="JSON" /> />

SDK 針對特定於平台的組件使用反射。如果您使用的是 IL2CPP 腳本後端,請strip bytecode始終在 iOS 上啟用,所以您需要有link.xml文件,其中包含以下條目:

<linker> <!-- if you are using AWSConfigs.HttpClient.UnityWebRequest option--> <assembly fullname="UnityEngine"> <type fullname="UnityEngine.Networking.UnityWebRequest" preserve="all" /> <type fullname="UnityEngine.Networking.UploadHandlerRaw" preserve="all" /> <type fullname="UnityEngine.Networking.UploadHandler" preserve="all" /> <type fullname="UnityEngine.Networking.DownloadHandler" preserve="all" /> <type fullname="UnityEngine.Networking.DownloadHandlerBuffer" preserve="all" /> </assembly> <assembly fullname="mscorlib"> <namespace fullname="System.Security.Cryptography" preserve="all"/> </assembly> <assembly fullname="System"> <namespace fullname="System.Security.Cryptography" preserve="all"/> </assembly> <assembly fullname="AWSSDK.Core" preserve="all"/> <assembly fullname="AWSSDK.CognitoIdentity" preserve="all"/> <assembly fullname="AWSSDK.SecurityToken" preserve="all"/> add more services that you need here... </linker>

步驟 3:使用 Amazon Cognito 獲取身份池 ID

要在移動應用程序中使用 AWS 服務,您必須使用 Amazon Cognito 身份獲取身份池 ID。使用 Amazon Cognito 獲取身份池 ID 允許您的應用程序訪問 AWS 服務,而無需在應用程序中嵌入您的私有證書。這還允許您設置權限,以控制用户有權訪問哪些 AWS 服務。

要開始使用 Amazon Cognito,您必須創建一個身份池。身分集區是您的帳戶專屬的使用者身分資料存放區。每個身份池都有可配置的 IAM 角色,允許您指定應用程序用户可以訪問哪些 AWS 服務。通常,開發人員將使用每個應用程序一個身份池。如需身分集區的詳細資訊,請參Amazon Cognito 開發人員指南

若要為應用程式建立身分集區:

  1. 登錄到Amazon Cognito 主控台,然後單擊建立新的身分集區

  2. 輸入身分集區的名稱,並選中複選框,以允許對未驗證身分的存取。按一下建立集區以建立身分集區。

  3. 按一下Allow,以建立與身分集區相關聯的兩個預設角色,一個用於未驗證的使用者。這兩個預設角色可讓您的身分集區存取 Cognito Sync 和 Mobile Analytics。

下一頁顯示創建憑據提供程序的代碼,以便您可以輕鬆地將 Cognito 身份與 Unity 應用程序集成。您可以將登入資料供應商傳遞至所使用的 AWS 用户端建構函式。程式碼看起來像這樣:

CognitoAWSCredentials credentials = new CognitoAWSCredentials ( "IDENTITY_POOL_ID", // Identity Pool ID RegionEndpoint.USEast1 // Region );

後續步驟