无代码 IAP 是在您的 Unity 应用中实现应用内购买的最简单方法。Unity 编辑器提供了用于使用最少脚本编写配置基本 IAP 集成的界面。
无代码 IAP 处理实际的 IAP 交易,无需任何代码。实现无代码 IAP 是使用编辑器进行的两个步骤过程
Unity Purchasing 系统在运行时配置您在目录中填充的产品。当玩家选择IAP 按钮时,它将启动与相关产品关联的购买流程。
注意: 您仍然需要使用脚本定义玩家如何访问他们新购买的内容。有关更多信息,请参阅下面的 购买完成 部分。
在开始之前,请安装最新的 Unity IAP SDK。有关更多信息,请参阅有关 设置 Unity IAP 的文档。
要将IAP 按钮添加到您的场景中,在 Unity 编辑器中,选择窗口>Unity IAP>创建 IAP 按钮。
通过以下两种方式之一打开IAP 目录GUI
接下来,使用 GUI 为目录中的每个产品定义以下属性。
注意: IAP 目录GUI 提供用于配置产品的其他工具。在导出目录 以上传到其各自的商店之前,您必须填充描述和定价信息。有关这些设置的详细信息,请参阅有关 定义产品 的文档。
UnityPurchasing
IAP SDK 必须初始化才能使应用内购买正常工作。当第一个无代码IAP 按钮或 IAP 监听器 实例在运行时加载时,这将自动发生。但是,您可能需要在 IAP 按钮或 IAP 监听器出现在您的游戏中之前初始化 SDK(例如,在应用启动后提供 IAP 促销 优惠)。在这些情况下,请在IAP 目录窗口底部选中自动初始化 UnityPurchasing(推荐)。这将确保 UnityPurchasing
在应用程序启动时立即初始化,并消除对无代码实例生命周期的依赖。
为了正常工作,您的目录必须包含至少一个产品。
注意: 您可以将自动初始化与 IAP 按钮或监听器一起使用。在这种情况下,SDK 会在游戏启动时初始化,而不是在第一个 IAP 按钮或监听器实例加载到 场景场景包含您的游戏环境和菜单。将每个唯一的场景文件视为唯一的关卡。在每个场景中,您放置您的环境、障碍物和装饰,基本上是分块设计和构建您的游戏。 更多信息
参见 词汇表 中时初始化。但是,如果您还在脚本中手动初始化,则不应启用自动初始化,因为这会导致错误。
当您的目录包含至少一个产品时,您可以在购买完成或失败时定义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 的完整指南,请参阅 Google 应用内结算 文档,该文档位于 Android 开发者网站 上。
要导出您的产品目录以供 Apple iTunes 使用
有关通过 Apple 的 Application Loader 导入的完整指南,请参阅 Application Loader 文档,该文档位于 iTunes Connect 网站 上。
一些应用商店(包括 iTunes)要求应用拥有恢复按钮。无代码 IAP 为在您的应用中实现恢复按钮提供了一种简单的方法。
要添加恢复按钮
当用户在运行时选择此按钮时,该按钮将调用当前商店的购买恢复 API。此功能在 iOS App Store、Mac App Store 和 Windows Store 应用商店中有效。您可能希望在其他平台上隐藏恢复按钮。
如果恢复成功,Unity IAPUnity 应用内购买的缩写
参见 词汇表 将调用与该产品关联的IAP 按钮上的购买完成(产品)函数。
有关更多信息,请参阅有关 恢复购买 的文档。
无代码 IAP 将成功的和失败的购买事件分派到层次结构中的活动IAP 按钮组件。但是,在处理成功的购买时,可能难以或不希望拥有活动IAP 按钮。例如,如果购买在完成之前被打断,Unity IAP 会尝试在下次初始化时再次处理购买。您可能希望这在应用启动后立即发生,在这种情况下,IAP 按钮就没有意义了。无代码 IAP 包含IAP 监听器组件,专门用于这些情况。场景层次结构中的活动IAP 监听器将接收无法分派到IAP 按钮的任何购买事件。
要添加IAP 监听器
无代码 IAP 功能不会公开 Unity IAP 的大多数 扩展功能。但是,无代码 IAP 是在现有脚本 API 之上实现的,因此您可以修改 IAPButton.cs 脚本(Assets/Plugins/UnityPurchasing/script/IAPButton.cs)中的大部分功能以满足您的需求。
要使用 Unity IAP 的扩展功能,请访问 Unity IAP IStoreController
和 IExtensionProvider
实例,它们由 IStoreListener.OnInitialize
返回。