AWS Mobile SDK for Unity の使用開始 - AWS Mobile SDK

AWS Mobile SDK for Unity の使用開始

このページでは、AWS Mobile SDK for Unity の各 AWS サービスの概要と、Unity サンプルの設定方法について説明します。以下のサービスの使用を開始する前に、「AWS Mobile SDK for Unity のセットアップ」ページのすべての手順を完了する必要があります。

Amazon Cognito ID

AWS を呼び出すには、必ず AWS 認証情報が必要です。アプリに AWS 認証情報を提供するには、アプリケーションへの認証情報をハードコードするのではなく、Amazon Cognito ID を使用することをお勧めします。「AWS Mobile SDK for Unity をセットアップする」の手順に従って、Amazon Cognito 経由で AWS 認証情報を取得します。

Cognito では、パブリックログインプロバイダー (Amazon、Facebook、Twitter、Google など) や、OpenID Connect をサポートするプロバイダーを使用して、ユーザーを認証することができます。また、Cognito では、未認証ユーザーのアクセスを設定することもできます。Cognito では、Identity and Access Management (IAM) ロールを使用して指定した制限付きアクセス権に一時的な認証情報を提供します。Cognito は、IAM ロールに関連付けられた新しい ID プールを作成して構成されます。IAM ロールは、アプリケーションでアクセスできるリソースとサービスを指定します。

Cognito ID の使用を開始するには、Amazon Cognito 開発者ガイドを参照してください。

Amazon Cognito Sync

Cognito Sync では、ユーザーの好みやゲームの状態などのエンドユーザーのデータを AWS クラウドに簡単に保存できるため、これらのデータはユーザーが使用しているデバイスに関係なく利用可能になります。Cognito はこのデータをローカルに保存することもできるため、インターネット接続が利用できなくてもアプリを動作させることができます。インターネット接続が利用可能になると、アプリとローカルデータをクラウドに同期できます。

Cognito Sync の使用を開始するには、Amazon Cognito 開発者ガイドを参照してください。

CognitoSyncManager サンプルを使用する

[Project (プロジェクト)] ペインで、[Assets (アセット)]/[AWSSDK]/[examples (例)]/[CognitoSync] に移動して、右側のペインの [CognitoSync] を選択してシーンを開きます。

サンプルを実行するには、エディタ画面上部の再生ボタンをクリックします。アプリが実行されると、いくつかのプレーヤー情報を入力できるテキストボックスとボタンが表示されます。この下には、プレーヤーの情報をローカルに保存したり、ローカルプレーヤー情報を Cognito クラウドと同期させたり、Cognito Cloud からプレーヤー情報を更新したり、ローカルプレーヤー情報を削除する一連のボタンがあります。各ボタンを押して操作を実行します。サンプルゲーム画面の上部にフィードバックが表示されます。

CognitoSyncManager サンプルを設定するには、Cognito ID プールの ID を指定する必要があります。この値を指定するには、Unity エディタで、[Heirarchy (階層)] ペインの [SyncManager] を選択し、[Inspector Pane (インスペクターペイン)] の [IDENTITY_POOL_ID] テキストボックスに入力します。

注記

CognitoSyncManager サンプルには、Facebook の ID プロバイダーを使用して 「USE_FACEBOOK_LOGIN」マクロを検索する方法を示すコードが含まれています。Facebook SDK for Unity を使用する必要があります。詳細については、Facebook SDK for Unity を参照してください。

DynamoDB

Amazon DynamoDB は、拡張性と可用性に優れた、費用効果の高い、高速な非リレーショナルデータベースサービスです。DynamoDB により、データストレージに対して低いレイテンシーと予測可能なパフォーマンスを維持しながら、従来の拡張性の限界を排除できます。

AWS SDK for Unity は、DynamoDB を操作するための低レベルライブラリと高レベルライブラリの両方を提供します。高レベルライブラリには、DynamoDB Object Mapper が含まれており、クライアント側のクラスを DynamoDB テーブルにマップできます。さまざまな作成、読み取り、更新、および削除 (CRUD) 操作を実行し、さらにクエリを実行します。DynamoDB Object Mapper を使用すると、オブジェクトをクラウドに格納する簡単で読みやすいコードを記述できます。

DynamoDB の詳細については、DynamoDB 開発者ガイドを参照してください。

Unity アプリケーションから DynamoDB を使用する方法の詳細については、「Amazon DynamoDB」を参照してください。

DynamoDB サンプルの使用

[Project (プロジェクト)] ペインで、[Assets (アセット)]/[AWSSDK/] [examples (例)]/[DynamoDB] に移動します。このサンプルは、以下のシーンで構成されています。

  • DynamoDBExample - アプリの最初のシーン

  • LowLevelDynamoDbExample - 低レベルの DynamoDBD API を使用した例

  • TableQueryAndScanExample - クエリの実行方法の例

  • HighLevelExample- 高レベルの DynamoDB API を使用した例

Build Settings ダイアログ (File.Build Settings を選択して開く) を使用して、これらのシーンをビルドに追加します (上に表示されている順番で)。このサンプルの 4 つのテーブルを作成します。ProductCatalog、Forum、Thread、Reply です。

サンプルを実行するには、エディタ画面上部の再生ボタンをクリックします。アプリが実行されると、いくつかのボタンが表示されます。

  • 低レベルテーブルのオペレーション - テーブルの作成、リスト作成、更新、記述、および削除の方法を示します。

  • 中間レベル Query&Scan のオペレーション - クエリを実行する方法を示します。

  • 高レベル Object Mapper - オブジェクトを作成、更新、削除する方法を示します。

Mobile Analytics

Amazon Mobile Analytics を使用すると、顧客の行動を追跡し、メトリクスを集約して、データを視覚化できるほか、有意義なパターンを特定することができます。AWS SDK for Unity では、Amazon Mobile Analytics サービスとの統合を提供します。Mobile Analytics の詳細については、Mobile Analytics ユーザーガイドを参照してください。Unity アプリケーションから Mobile Analytics を使用する方法の詳細については、「Amazon Mobile Analytics」を参照してください。

Mobile Analytics の設定

Mobile Analytics では、awsconfig.xml で設定可能な設定の一部を定義します。

<mobileAnalytics sessionTimeout = "5" maxDBSize = "5242880" dbWarningThreshold = "0.9" maxRequestSize = "102400" allowUseDataNetwork = "false"/>
  • sessionTimeout - アプリケーションがバックグラウンドに移行してからセッションが終了するまでの時間間隔。

  • maxDBSize - SQLIte データベースのサイズ。データベースの最大サイズに達すると、それ以降のイベントは削除されます。

  • dbWarningThreshold - データベースのサイズ制限。この値に達すると、警告ログが生成されます。

  • maxRequestSize - HTTP リクエストで Mobile Analytics サービスに送信する必要がある、バイト単位のリクエストの最大サイズ。

  • allowUseDataNetwork - データネットワーク上でセッションイベントを送信するかどうかを指定するブール値。

Mobile Analytics サンプルを使用する

[Project (プロジェクト)] ペインで、[Assets (アセット)]/[AWSSDK]/[examples (例)]/[Mobile Analytics] に移動して、右側のペインの [Amazon Mobile Analytics Sample (Amazon Mobile Analytics のサンプル)] を選択してシーンを開きます。サンプルを使用するには、Amazon Mobile Analytics コンソールを使用してアプリを追加する必要があります。Mobile Analytics コンソールを使用する方法の詳細については、Amazon Mobile Analytics ユーザーガイドを参照してください。

実行する前にサンプルを設定するには、次の手順に従います。

  1. [AmazonMobileAnalyticsSample] ゲームオブジェクトを選択します。

  2. [App Id (アプリケーション ID)] フィールドに、アプリ ID (Amazon Mobile Analytics コンソールで作成済み) を指定します。

  3. [Cognito Identity Pool Id (Cognito ID プール ID)] フィールドに Cognito ID プール ID (Amazon Cognito コンソールを使用して作成済み) を指定します。

  4. 認証されたロールと未認証ロールに Mobile Analytics サービスにアクセスする権限があることを確認します。IAM ロールにポリシーを適用する方法の詳細については、「ロールの管理」を参照してください。

サンプルアプリケーションを実行する場合、イベントはすぐにバックエンドサービスに送信されない可能性があることに注意してください。バックグラウンドスレッドはイベントをローカルでバッファリングした後、一定の間隔 (デフォルト値は 60 秒) で Amazon Mobile Analytics バックエンドにバッチで送信して、ゲームのパフォーマンスに悪影響を与えないようにします。データに対して Amazon Mobile Analytics の実行の処理が複雑なため、イベントおよび対応するレポートは、最初の送信から最大 60 分経過するまで AWS コンソールに表示されないことがあります。

Amazon Mobile Analytics が提供するレポートの詳細については、「レポートとモバイルメトリクス」を参照してください。

Amazon S3

Amazon Simple Storage Service (Amazon S3) を使用すると、開発者および IT チームは、耐久性および耐障害性が高く、セキュアなオブジェクトストレージを使用できるようになります。Unity では、S3 を使用して、ゲームで使用されている画像、ビデオ、音楽、その他のデータを保存、一覧表示、取得することができます。

S3 の詳細については、「Amazon S3」および「S3 の使用開始」を参照してください。

Unity アプリケーションから S3 を使用する方法の詳細については、「Amazon Simple Storage Service (S3)」を参照してください。

S3 Default Signature の設定

デフォルトの S3 署名は、次のように構成されています。

<s3 useSignatureVersion4="true" />

これは、S3 リクエストに対して署名バージョン 4 を使用する必要があるかどうかを指定するために使用されます。

S3 サンプル の使用

[Project (プロジェクト)] ペインで、[Assets (アセット)]/[AWSSDK]/[examples (例)]/[S3] に移動して、右側のペインの [S3Example] シーンを選択してシーンを開きます。このサンプルは、バケットの一覧表示、バケット内のオブジェクトの一覧表示、オブジェクトのバケットへのポスト、およびバケットからのオブジェクトのダウンロード方法を示しています。実行する前にサンプルを設定するには、次の手順に従います。

  1. [Hierarchy (階層)] ペインで [S3] ゲームオブジェクトを選択します。

  2. [Inspector (インスペクター)] ペインで、[S3BucketName] と [SampleFileName] の値を入力します。S3BucketName はサンプルで使用されるバケットの名前で、S3SampleFileName はサンプルが指定された S3 バケットにアップロードされるファイルの名前です。

  3. 認証されたロールと未認証ロールに、アカウントの S3 バケットにアクセスする権限があることを確認します。IAM ロールにポリシーを適用する方法の詳細については、「ロールの管理」を参照してください。

サンプルを実行するには、エディタ画面上部の再生ボタンをクリックします。アプリが実行されると、いくつかのボタンが表示されます。

  • Get Objects - AWS アカウントのすべてのバケット内のすべてのオブジェクトのリストを取得します。

  • Get Buckets - AWS アカウントのすべてのバケット内のすべてのオブジェクトのリストを取得します。

  • Post Object- 指定された S3 バケットにオブジェクトをアップロードします。

  • Delete Object- 指定された S3 バケットからオブジェクトをすべて削除します。

サンプルゲーム画面の上部にフィードバックが表示されます。

Amazon Simple Notification Service

Amazon Simple Notification Service は、高速かつ柔軟な完全マネージド型のプッシュ通知サービスです。このサービスを使用すると、個々のメッセージを送信したり、多数の受信者にメッセージをファンアウトしたりできます。Amazon Simple Notification Service により、簡単かつコスト効率の高い方法で、モバイルデバイスユーザーおよびメール受信者にプッシュ通知を送信したり、他の分散サービスにメッセージを送信したりできます。Amazon Simple Notification Service を開始するには、「Amazon Simple Notification Service」を参照してください。

AWS Lambda

AWS Lambda は、リクエストまたはイベントに応答してコードを実行するコンピューティングサービスです。コンピューティングリソースを自動的に管理して、新規情報に迅速に対応するアプリケーションを容易に構築できるようにします。AWS Lambda 関数は、モバイル、IoT、ウェブアプリから直接呼び出して、同期的にレスポンスを返すことができるため、インフラストラクチャをプロビジョニングまたは管理することなく、モバイルアプリ向けにスケーラブルかつセキュアで可用性が高いバックエンドを容易に作成することができます。詳細については、「AWS Lambda」を参照してください。