AWS Mobile SDK for Unity のセットアップ - AWS Mobile SDK for Unity

AWS Mobile SDK for Unity が、AWS SDK for .NET に含まれるようになりました。このガイドでは Mobile SDK for Unity のアーカイブバージョンを参照します。詳細については、AWS Mobile SDK for Unity とは を参照してください。

AWS Mobile SDK for Unity のセットアップ

AWS Mobile SDK for Unity の使用を開始するには、SDK をセットアップして新しいプロジェクトを作成したり、SDK を既存のプロジェクトと統合することができます。また、SDK の仕組みを確認するために、クローンを作成して、サンプルを実行することもできます。

前提条件

AWS Mobile SDK for Unity を使用するには、以下が必要になります。

  • AWS アカウント

  • Unity バージョン 4.x または 5.x (Unity 4.6.4p4 または Unity 5.0.1p3 以降が必要です。iOS 上で実行するアプリケーションを作成する場合は、64 ビット)

前提条件を完了した後、開始するには次の手順を実行する必要があります。

  1. AWS Mobile SDK for Unity のダウンロード。

  2. AWS Mobile SDK for Unity の設定。

  3. Amazon Cognito を使用して AWS 認証情報を取得します。

ステップ 1: AWS Mobile SDK for Unity のダウンロード

最初に、AWS Mobile SDK for Unity をダウンロードします。SDK の各パッケージは、パッケージの名前に基づいて、対応する AWS のサービスを使用する必要があります。たとえば、aws-unity-sdk-dynamodb-2.1.0.0.unitypackage パッケージは、AWS DynamoDB サービスの呼び出しに使用されます。すべてのパッケージをインポートすることも、使用するパッケージだけをインポートすることもできます。

  1. Unity エディタを開き、新しい空のプロジェクトを作成し、デフォルト設定を使用します。

  2. [Assets (アセット)] > [Import Package (パッケージのインポート)] > [Custom Package (カスタムパッケージ)] を選択します。

  3. [Import (インポート)] パッケージダイアログで、使用する .unitypackage ファイルに移動して選択します。

  4. [Importing Package (パッケージをインポート)] ダイアログで、すべての項目が選択されていることを確認し、[Import (インポート)] をクリックします。

ステップ 2: AWS Mobile SDK for Unity の設定

シーンの作成

AWS Mobile SDK for Unity を使用して作業する場合、モノ動作クラスの Start または Awakeメソッドに次のコード行を含めることで開始できます。

UnityInitializer.AttachToGameObject(this.gameObject);

[File] メニューから [New Scene] を選択してシーンを作成します。

AWS SDK for Unity には、サポートしている各 AWS サービスのクライアントクラスが含まれています。これらのクライアントは、awsconfig.xml という名前のファイルを使用して設定されます。次のセクションでは、awsconfig.xml ファイルで最も一般的に使用される設定について説明します。これらの設定の詳細については、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 にログを記録すると、フレームワーク内部で Debug Log に出力されます。HTTP レスポンスをログする場合は、logResponses フラグを設定します。値は、Always、Never、または OnError のいずれかです。また、logMetrics プロパティを使用して HTTP リクエストのパフォーマンスメトリクスをログに記録したり、LogMetricsFormat プロパティを使用してログフォーマットを指定したり、有効な値を 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 スクリプトバックエンドを使用している場合、iOS では常に strip bytecode が有効になっているため、次のエントリを使用してアセンブリルートに 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 プールの ID を取得する

モバイルアプリケーションで AWS サービスを使用するには、Amazon Cognito Identity を使用して ID プールの ID を取得する必要があります。Amazon Cognito を使用して ID プールの ID を取得すると、アプリケーションにプライベートな認証情報を埋め込むことなく、AWS サービスにアクセスできるようになります。また、アクセス権限を設定して、ユーザーがアクセスできる AWS サービスを管理することができます。

Amazon Cognito の使用を開始するには、ID プールを作成する必要があります。ID プールはアカウントに固有のユーザー ID データのストアです。各 ID プールには、アプリケーションのユーザーがアクセスできる AWS サービスを指定するために使用できる、設定可能な IAM ロールがあります。通常、開発者はアプリケーションごとに 1 つの ID プールを使用します。ID プールの詳細については、Amazon Cognito 開発者ガイドを参照してください。

アプリケーション用の ID プールを作成するには:

  1. Amazon Cognito コンソールにログインし、[新しい ID プールの作成] をクリックします。

  2. ID プールの名前を入力し、未認証 ID へのアクセスを有効にするチェックボックスをオンにします。[プールの作成] をクリックして、ID プールを作成します。

  3. [Allow (許可)] をクリックして、ID プールに関連付けられた 2 つのデフォルトロール (1 つは未認証ユーザー用、もう 1 つは認証されたユーザー用) を作成します。これらのデフォルトのロールは、Cognito Sync および Mobile Analytics への ID プールアクセスを提供します。

次のページには、Cognito Identity と Unity アプリケーションを簡単に統合できるように、認証プロバイダーを作成するコードが表示されます。認証情報プロバイダーオブジェクトを、使用している AWS クライアントのコンストラクタに渡します。コードは次のようになります。

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

次のステップ