版本: Unity 6 (6000.0)
语言: 英语
Amazon Appstore 的配置
定义产品

无代码 IAP

无代码 IAP 是在您的 Unity 应用中实现应用内购买的最简单方法。Unity 编辑器提供了用于使用最少脚本编写配置基本 IAP 集成的界面。

无代码 IAP 处理实际的 IAP 交易,无需任何代码。实现无代码 IAP 是使用编辑器进行的两个步骤过程

  1. IAP 按钮添加到您的游戏中.
  2. IAP 目录中定义您的产品.

Unity Purchasing 系统在运行时配置您在目录中填充的产品。当玩家选择IAP 按钮时,它将启动与相关产品关联的购买流程。

注意: 您仍然需要使用脚本定义玩家如何访问他们新购买的内容。有关更多信息,请参阅下面的 购买完成 部分。

实施无代码 IAP

在开始之前,请安装最新的 Unity IAP SDK。有关更多信息,请参阅有关 设置 Unity IAP 的文档。

将 IAP 按钮添加到您的场景中

要将IAP 按钮添加到您的场景中,在 Unity 编辑器中,选择窗口>Unity IAP>创建 IAP 按钮

Creating a Codeless IAP Button in the Unity Editor
在 Unity 编辑器中创建无代码IAP 按钮

在 IAP 目录中填充产品

通过以下两种方式之一打开IAP 目录GUI

  • 选择窗口>Unity IAP>IAP 目录
  • 或者,选择IAP 按钮,在 检视器一个 Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
    参见 词汇表
    中找到其IAP 按钮(脚本)组件,然后单击IAP 目录…
Accessing the IAP Catalog GUI through an IAP Button script component
通过IAP 按钮脚本组件访问IAP 目录GUI

接下来,使用 GUI 为目录中的每个产品定义以下属性。

  • 一个产品 ID,用于与应用商店通信(请注意,您可以通过高级选项使用唯一的商店特定 ID 覆盖此 ID)。
  • 一个产品类型消耗型非消耗型订阅)。
Populating Product information in the IAP Catalog GUI
IAP 目录GUI 中填充产品信息

注意: IAP 目录GUI 提供用于配置产品的其他工具。在导出目录 以上传到其各自的商店之前,您必须填充描述和定价信息。有关这些设置的详细信息,请参阅有关 定义产品 的文档。

自动初始化 UnityPurchasing

IAP SDK 必须初始化才能使应用内购买正常工作。当第一个无代码IAP 按钮IAP 监听器 实例在运行时加载时,这将自动发生。但是,您可能需要在 IAP 按钮或 IAP 监听器出现在您的游戏中之前初始化 SDK(例如,在应用启动后提供 IAP 促销 优惠)。在这些情况下,请在IAP 目录窗口底部选中自动初始化 UnityPurchasing(推荐)。这将确保 UnityPurchasing 在应用程序启动时立即初始化,并消除对无代码实例生命周期的依赖。

Enabling auto-initialization for the SDK through the IAP Catalog GUI
通过IAP 目录GUI 为 SDK 启用自动初始化

为了正常工作,您的目录必须包含至少一个产品。

注意: 您可以将自动初始化与 IAP 按钮或监听器一起使用。在这种情况下,SDK 会在游戏启动时初始化,而不是在第一个 IAP 按钮或监听器实例加载到 场景场景包含您的游戏环境和菜单。将每个唯一的场景文件视为唯一的关卡。在每个场景中,您放置您的环境、障碍物和装饰,基本上是分块设计和构建您的游戏。 更多信息
参见 词汇表
中时初始化。但是,如果您还在脚本中手动初始化,则不应启用自动初始化,因为这会导致错误。

购买完成

当您的目录包含至少一个产品时,您可以在购买完成或失败时定义IAP 按钮行为。

  1. 场景视图一个交互式视图,用于查看您正在创建的世界。您使用场景视图选择和定位场景、角色、相机、灯光以及所有其他类型的游戏对象。 更多信息
    参见 词汇表
    中选择您的IAP 按钮,然后在检视器中找到其IAP 按钮(脚本)组件。
  2. 产品 ID下拉列表中选择要链接到IAP 按钮的产品。 选择与无代码 IAP 按钮关联的产品
  3. 创建您自己的函数来提供购买完成,或导入执行此操作的资源(请参阅下面的代码示例)。
  4. 将您的购买完成脚本应用于一个 游戏对象Unity 场景中的基本对象,可以代表角色、道具、场景、相机、航路点等等。游戏对象的功用由附加到它的组件定义。 更多信息
    参见 词汇表
    作为组件。 创建一个包含购买完成脚本的游戏对象
  5. 返回检视器中的IAP 按钮(脚本)组件,然后单击加号(+)按钮,将函数添加到购买完成(产品)列表中。
  6. 将包含购买完成脚本的游戏对象拖动到购买完成(产品)事件字段(如下所示),然后从下拉菜单中选择您的函数。 将购买完成脚本分配到 IAP 按钮事件字段

完成脚本代码示例:

public void GrantCredits (int credits){
    userCredits = userCredits + credits;
    Debug.Log(“You received “ + credits “ Credits!”);
} 

运行您的游戏以测试IAP 按钮

扩展功能

导出到应用商店

为了使购买正常工作,您必须在相应的应用商店中配置您的目录。为此,您可以将您的产品目录导出为 CSV 文件到 Google Play,或通过 Apple 的 Application Loader 以 XML 文件形式导出到 iTunes Store。

Google Play

要导出您的产品目录以供 Google Play 使用

  1. IAP 目录窗口(窗口>Unity IAP>IAP 目录)中,确保每个产品都定义了以下内容
    * ID
    * 类型
    * 标题描述
    * 价格定价模板ID
  2. 向下滚动,然后选择应用商店导出
  3. 选择Google Play CSV
  4. 选择要保存 CSV 文件的位置。

有关将导出的目录上传到 Google Play 的完整指南,请参阅 Google 应用内结算 文档,该文档位于 Android 开发者网站 上。

Apple iTunes

要导出您的产品目录以供 Apple iTunes 使用

  1. IAP 目录窗口(窗口 > Unity IAP > IAP 目录)中,确保每个产品都定义了以下内容
    * ID
    * 类型
    * 标题描述
    * 价格等级屏幕截图路径
    * Apple SKU(位于 iTunes Connect 中)
    * Apple 团队 ID(位于 Apple 开发者网站 上)
  2. 向下滚动,然后选择应用商店导出
  3. 选择Apple XML Delivery
  4. 选择要保存 XML 文件的位置。

有关通过 Apple 的 Application Loader 导入的完整指南,请参阅 Application Loader 文档,该文档位于 iTunes Connect 网站 上。

恢复按钮

一些应用商店(包括 iTunes)要求应用拥有恢复按钮。无代码 IAP 为在您的应用中实现恢复按钮提供了一种简单的方法。

要添加恢复按钮

  1. IAP 按钮添加到您的场景中(窗口 > Unity IAP > 创建 IAP 按钮)。
  2. 选择IAP 按钮,在检视器中找到其IAP 按钮(脚本)组件,然后从按钮类型下拉菜单中选择恢复(检视器视图中的大多数其他字段将消失)。 修改 IAP 按钮以恢复购买

当用户在运行时选择此按钮时,该按钮将调用当前商店的购买恢复 API。此功能在 iOS App Store、Mac App Store 和 Windows Store 应用商店中有效。您可能希望在其他平台上隐藏恢复按钮。

如果恢复成功,Unity IAPUnity 应用内购买的缩写
参见 词汇表
将调用与该产品关联的IAP 按钮上的购买完成(产品)函数。

有关更多信息,请参阅有关 恢复购买 的文档。

IAP 监听器

无代码 IAP 将成功的和失败的购买事件分派到层次结构中的活动IAP 按钮组件。但是,在处理成功的购买时,可能难以或不希望拥有活动IAP 按钮。例如,如果购买在完成之前被打断,Unity IAP 会尝试在下次初始化时再次处理购买。您可能希望这在应用启动后立即发生,在这种情况下,IAP 按钮就没有意义了。无代码 IAP 包含IAP 监听器组件,专门用于这些情况。场景层次结构中的活动IAP 监听器将接收无法分派到IAP 按钮的任何购买事件。

要添加IAP 监听器

  1. 在 Unity 编辑器中,选择窗口>Unity IAP>创建 IAP 监听器
  2. 按照有关 将购买完成脚本编写为游戏对象组件 的步骤操作。
  3. 在场景中选择IAP 监听器,在检视器中找到其IAP 监听器(脚本)组件,然后单击加号(+)按钮,将函数添加到购买完成(产品)列表中。
  4. 将包含购买完成脚本的游戏对象拖动到组件检视器中的事件字段,然后从下拉菜单中选择您的函数。 配置 IAP 监听器以处理处理异常

访问 Unity IAP 的扩展功能

无代码 IAP 功能不会公开 Unity IAP 的大多数 扩展功能。但是,无代码 IAP 是在现有脚本 API 之上实现的,因此您可以修改 IAPButton.cs 脚本(Assets/Plugins/UnityPurchasing/script/IAPButton.cs)中的大部分功能以满足您的需求。

要使用 Unity IAP 的扩展功能,请访问 Unity IAP IStoreControllerIExtensionProvider 实例,它们由 IStoreListener.OnInitialize 返回。


  • 2018-05-30 页面修正
Amazon Appstore 的配置
定义产品