

适用于 Unity 的 AWS 移动 SDK 现已包含在 适用于 .NET 的 AWS SDK。本指南引用适用于 Unity 的 Mobile SDK 的存档版本。有关更多信息，请参阅 [适用于 Unity 的 AWS 移动 SDK 是什么？](what-is-unity-plugin.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 适用于 Unity 的 AWS Mobile SDK 入门
<a name="getting-started-unity"></a>

本页概述了适用于 Unity 的 AWS Mobile SDK 中的每种 AWS 服务，并说明了如何设置 Unity 示例。开始使用以下服务前，您必须完成[安装适用于 Unity 的 AWS Mobile SDK](setup-unity.md) 页面上说明的所有步骤。

## Amazon Cognito Identity
<a name="unity-getting-started-cognito-identity"></a>

对 AWS 的所有调用都需要 AWS 凭证。我们建议您使用 [Amazon Cognito Identity](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) 向应用程序提供 AWS 凭证，而不是将凭证硬编码到应用程序中。请按照[安装适用于 Unity 的 AWS Mobile SDK](setup-unity.md) 中的说明，通过 Amazon Cognito 获取 AWS 凭证。

Cognito 还允许您使用公共登录提供商 (如 Amazon、Facebook、Twitter 和 Google) 以及支持 [OpenID Connect](https://aws.amazon.com/blogs/aws/openid-connect-support/) 的提供商对用户进行身份验证。Cognito 还支持未经身份验证的用户。Cognito 提供临时凭证，这些凭证具有有限的访问权限，您可以通过 [Identity and Access Management](https://aws.amazon.com/iam) (IAM) 角色指定这些权限。通过新建与 IAM 角色相关联的身份池，可以配置 Cognito。IAM 角色指定 resources/services 您的应用程序可以访问的内容。

要开始使用 Cognito Identity，请参阅 [Amazon Cognito 开发人员指南](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html)。

## Amazon Cognito Sync
<a name="amazon-cognito-sync"></a>

 使用 [Cognito Sync](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-sync.html)，您可以轻松将最终用户数据（如用户偏好或游戏状态）保存到 AWS Cloud，以便用户可以从任何设备访问这些数据。Cognito 也可以将此类数据保存在本地，使您的应用即使在 Internet 连接不可用时也能工作。当 Internet 连接变得可用时，您的应用会将其本地数据同步到云。

要开始使用 Cognito Sync，请参阅 [Amazon Cognito 开发人员指南](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html)。

### 使用示 CognitoSyncManager 例
<a name="using-the-cognitosyncmanager-sample"></a>

在 “**项目**” 窗格中，导航到 Ass **et** **s**//examples/**CognitoSync**，然后在窗格的右侧选择要打开**CognitoSync**场景的场景。**AWSSDK**

要运行该示例，请单击编辑器屏幕顶部的播放按钮。当应用运行时，它会显示几个文本框和按钮，您可以在这些文本框中输入一些玩家信息。文本框下面是一系列按钮，这些按钮用于将玩家信息保存在本地、将本地玩家信息与 Cognito 云同步、从 Cognito 云刷新玩家信息，以及删除本地玩家信息。按每个按钮可执行相应的操作。该示例在游戏屏幕的顶部显示反馈。

要配置 CognitoSyncManager 示例，必须指定 Cognito 身份池 ID。**要指定此值，请在 Unity 编辑器中，在 “层次**结构” 面板**SyncManager**中选择，然后将其输入到 Insp** ector 窗格的 IDENTIT **Y\$1POOL\$1ID** 文本框中。**

**注意**  
该 CognitoSyncManager 示例包含的代码说明了如何使用 Facebook 身份提供商搜索 “USE\$1FACEBOOK\$1LOGIN” 宏。这要求使用适用于 Unity 的 Facebook SDK。有关更多信息，请参阅[适用于 Unity 的 Facebook SDK](https://developers.facebook.com/docs/unity/)。

## Dynamo DB
<a name="dynamo-db"></a>

 [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) 是一项快速、高度可扩展、高度可用且经济实惠的非关系数据库服务。DynamoDB 消除了传统上对数据存储可扩展性的限制，同时保留了低延迟性和可预测的性能。

适用于 Unity 的 AWS SDK 提供了低级和高级库，这两种库均可与 DynamoDB 一起使用。高级库包括 DynamoDB Object Mapper，它允许您将客户端类映射到 DynamoDB 表，执行各种创建、读取、更新和删除 (CRUD) 操作，以及执行查询。使用 DynamoDB Object Mapper，您可以编写简单的可读代码，将对象存储在云中。

有关 DynamoDB 的更多信息，请参阅 [DynamoDB 开发人员指南](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)。

有关从 Unity 应用程序使用 Dynamo DB 的更多信息，请参阅 [Amazon DynamoDB](dynamodb.md)。

### 使用 DynamoDB 示例
<a name="using-the-dynamodb-sample"></a>

在 “**项目**” 窗格中，导航到 “**资产**”/“//**示例**” **AWSSDK/**“**DynamoDB**”。本示例由以下场景组成：
+ Dynamo DBExample -应用程序的初始场景
+ LowLevelDynamoDbExample -使用低级 DynamoDBD API 的示例
+ TableQueryAndScanExample -显示如何执行查询的示例
+ HighLevelExample -使用高级 DynamoDB API 的示例

通过使用“Build Settings”对话框 (通过选择“File”>“Build Settings”打开)，将这些场景添加到生成中 (按它们出现的顺序)。此示例创建了四个表： ProductCatalog、论坛、话题、回复。

要运行该示例，请单击编辑器屏幕顶部的播放按钮。当应用运行时，它会显示多个按钮：
+ 低级表操作 – 演示如何创建、列出、更新、描述和删除表。
+ 中级查询和扫描操作 – 演示如何执行查询。
+ 高级 Object Mapper – 演示如何创建、更新和删除对象。

## Mobile Analytics
<a name="mobile-analytics"></a>

使用 [Amazon Mobile Analytics](https://aws.amazon.com/mobileanalytics/)，您可以跟踪客户行为、聚合指标、生成数据可视化以及确定有意义的模式。适用于 Unity 的 AWS SDK 可与 Amazon Mobile Analytics 服务集成。有关 Mobile Analytics 的信息，请参阅 [Mobile Analytics 用户指南](https://docs.aws.amazon.com/mobileanalytics/latest/ug/welcome.html)。有关从 Unity 应用程序使用 Mobile Analytics 的更多信息，请参阅 [Amazon Mobile Analytics](analytics.md)。

### 配置 Mobile Analytics
<a name="configuring-mobile-analytics"></a>

Mobile Analytics 会定义一些可在 awsconfig.xml 文件中配置的设置：

```
<mobileAnalytics sessionTimeout = "5"
                 maxDBSize = "5242880"
                 dbWarningThreshold = "0.9"
                 maxRequestSize = "102400"
                 allowUseDataNetwork = "false"/>
```
+ sessionTimeout – 从应用程序进入后台到可以终止会话之间的时间间隔。
+ max DBSize -这是 SQLIte 数据库的大小。如果数据库大小达到此上限值，任何后续事件都将被丢弃。
+ dbWarningThreshold -这是数据库的大小限制，一旦达到该限制，就会生成警告日志。
+ maxRequestSize -这是应在 HTTP 请求中传输到移动分析服务的请求的最大大小（以字节为单位）。
+ allowUseDataNetwork-一个布尔值，用于指定会话事件是否在数据网络上发送。

### 使用 Mobile Analytics 示例
<a name="using-the-mobile-analytics-sample"></a>

在 “**项目**” 窗格中，导航到 “**资产**//**示例 AWSSDK****/****Mobile Analytics**”，然后在窗格的右侧选择 **Amazon Mobile Analytics 示例**场景以打开场景。要使用该示例，您需要使用 [Amazon Mobile Analytics 控制台](https://docs.aws.amazon.com/mobileanalytics/latest/ug/migrate-console.html)添加应用程序。有关使用 Mobile Analytics 控制台的更多信息，请参阅 [Amazon Mobile Analytics 用户指南](https://docs.aws.amazon.com/mobileanalytics/latest/ug/set-up.html)。

运行前，请执行下列步骤配置示例：

1. 选择 AmazonMobileAnalyticsSample 游戏对象。

1. 在“App Id (应用程序 ID)”字段中指定应用程序 ID（在 [Amazon Mobile Analytics 控制台](https://docs.aws.amazon.com/mobileanalytics/latest/ug/migrate-console.html)中创建）。

1. 在“Cognito Identity Pool Id (Cognito 身份池 ID)”字段中指定 Cognito 身份池 ID（使用 [Amazon Cognito 控制台](https://console.aws.amazon.com/cognito/home)创建）。

1. 确保经过身份验证和未经过身份验证的角色都有权访问 Mobile Analytics 服务。有关对 IAM 角色应用策略的更多信息，请参阅[管理角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing.html#roles-managingrole-editing-console)。

请注意，当运行示例应用程序时，事件可能无法立即传送到后端服务。后台线程会将事件缓存到本地，然后定期 (默认值为 60 秒) 将它们分批发送到 Amazon Mobile Analytics 后端，确保您的游戏性能不会受到不利影响。由于 Amazon Mobile Analytics 会对数据进行复杂的处理，在初次提交后长达 60 分钟的时间内，AWS 管理控制台中可能看不到已提交的事件和对应的报告。

有关 Amazon Mobile Analytics 提供的报告的更多信息，请参阅[报告和移动指标](https://aws.amazon.com/mobileanalytics/faqs/#report-and-metric-details)。

## Amazon S3
<a name="amazon-s3"></a>

Amazon Simple Storage Service (Amazon S3) 为开发人员和 IT 团队提供安全、持久、高度可扩展的对象存储。您可以从 Unity 使用 S3 来存储、列出和检索图像、视频、音乐以及游戏使用的其他数据。

有关 S3 的更多信息，请参阅 [Amazon S3](https://aws.amazon.com/s3/) 和 [S3 入门](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html)。

有关从 Unity 应用程序使用 S3 的更多信息，请参阅 [Amazon Simple Storage Service (S3)](s3.md)。

### 配置 S3 默认签名
<a name="configuring-the-s3-default-signature"></a>

按如下说明配置 S3 默认签名：

```
<s3 useSignatureVersion4="true" />
```

用于指定是否应对 S3 请求使用签名版本 4。

### 使用 S3 示例
<a name="using-the-s3-sample"></a>

**在 “**项目**” 窗格中，导航到 Ass **et** s **AWSSDK**//examples/**S3**，然后在窗格的右侧选择 **S3** Example 场景以打开场景。**该示例演示如何列出存储桶、列出存储桶中的对象、将对象发布到存储桶，以及从存储桶下载对象。运行前，请执行下列步骤配置示例：

1. 在 **Hierarchy** 窗格中选择 **S3** 游戏对象。

1. 在 **Inspector** 窗格中输入 S **3 BucketName** 和的值**SampleFileName**。S3 BucketName 是示例使用的存储桶的名称，S3 SampleFileName 是示例将上传到指定 S3 存储桶中的文件的名称。

1. 确保经过身份验证和未经过身份验证的角色都有权访问账户中的 S3 存储桶。有关对 IAM 角色应用策略的更多信息，请参阅[管理角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing.html#roles-managingrole-editing-console)。

要运行该示例，请单击编辑器屏幕顶部的播放按钮。当应用运行时，它会显示多个按钮：
+ 获取对象 – 获取 AWS 账户中所有存储桶中全部对象的列表。
+ 获取存储桶 – 获取 AWS 账户中所有存储桶的列表。
+ 发布对象 – 将对象上传到指定的 S3 存储桶。
+ 删除对象 – 从指定的 S3 存储桶删除所有对象。

该示例在游戏屏幕的顶部显示反馈。

## Amazon Simple Notification Service
<a name="amazon-simple-notification-service"></a>

Amazon Simple Notification Service 是一项快速、灵活、完全托管的推送通知服务，可以让您发送单独的消息或将消息群发给大量收件人。通过 Amazon Simple Notification Service，您可以将推送通知发送给移动设备用户、电子邮件收件人，甚至可以将消息发送给其他分布式服务，既简单又经济高效。要开始使用 Amazon Simple Notification Service，请参阅 [Amazon Simple Notification Service](sns.md)。

## AWS Lambda
<a name="aws-lambda"></a>

AWS Lambda 是一个计算服务，它运行您的代码来响应请求或事件，并且自动为您管理计算资源，使构建快速响应新信息的应用程序变得容易。AWS Lambda 函数可以直接从移动设备、物联网和 Web 应用调用，并且可以同步发回响应，因此无需预配置或管理基础设施，就可方便地为移动应用程序创建可扩展、安全且高度可用的后端。有关更多信息，请参阅 [AWS Lambda](lambda.md)。