为了使用应用内购买,你的应用必须提供待售的产品列表。你可以通过脚本编写来执行此操作,或者使用 无代码 IAP 目录(窗口 > Unity IAPUnity 的应用内购买的缩写
请在 术语表 中查看 > IAP 目录)。无论使用哪种实现,你都必须为每个产品定义适当的属性。本页面详细介绍这些属性。
输入跨平台唯一标识符,作为产品在与应用商店通信时的默认 ID。
重要提示: ID 只能包含小写字母、数字、下划线或句点。
每个产品都必须属于以下类型之一
类型 | 说明 | 示例 |
---|---|---|
消耗品 | 用户可以反复购买此产品。消耗品无法还原。 | * 虚拟货币 * 生命值药水 * 临时增益。 |
非消耗品 | 用户只能购买此产品一次。非消耗品可以还原。 | * 武器或盔甲 * 额外内容访问权限 |
订阅 | 用户可以在有限时间内访问此产品。订阅产品可以还原。 | * 按月访问在线游戏 * 提供每日奖励的 VIP 状态 * 免费试用 |
注意:有关订阅类型支持的更多信息,请参阅 订阅产品支持 部分。
此部分定义与你的产品关联的元数据,以在游戏内商店中使用。
使用以下字段为产品添加说明性文本
字段 | 数据类型 | 说明 | 示例 |
---|---|---|---|
产品区域 | 枚举 | 确定所在区域可用的应用商店。 | 英语(美国) (Google Play、Apple) |
产品标题 | 字符串 | 产品在应用商店中显示的名字。 | “生命值药水” |
产品说明 | 字符串 | 产品在应用商店中显示的说明性文本,通常是对产品进行解释。 | “恢复 50 点生命值。” |
点击加号 (+) 图标并选择其他区域设置,为 标题 和 描述 字段添加 翻译。您可以根据自己的喜爱添加任意数量的翻译。
使用此部分为您对购买者支付的内容添加本地固定定义。支付有助于更轻松地管理游戏内钱包或库存。通过使用名称和数量对产品进行标记,开发人员可以快速调整某些项目类型的游戏内数量(例如,代币或宝石)。
注意:此功能仅在 Unity 2017.2 或更高版本中可用。
字段 | 数据类型 | 说明 | 示例 |
---|---|---|---|
支付类型 | 枚举 | 定义购买者收到的内容类别。有四种可能的类型。 | * 货币 * 项目 * 资源 * 其他 |
支付子类型 | 字符串 | 为内容类别提供了一定的细化级别。 | * 货币 类型的“黄金”和“白银”子类型 * 项目 类型的“药剂”和“提升”子类型 |
数量 | int | 指定购买方在支付中收到的商品、货币等数量。 | * 1 * >25 * 100 |
数据 | 您可以以自己喜欢的任何方式使用此字段,作为可在代码中引用的属性。 | * 用户界面元素标志 * 项目稀有性 |
注意:您可以在一个产品中添加多个支付。
有关 PayoutDefinition 类详细信息,请参阅脚本参考。您始终可以使用此类向脚本中的产品添加支付信息。例如
using UnityEngine.Purchasing;
new PayoutDefinition (PayoutType.Currency, "Gold", 100)
请注意,IAP 目录充当产品目录词典,而不是库存管理器。您仍必须实现处理购买内容传递的代码。
默认情况下,Unity IAP 会假设您的产品在所有应用商店中的标识符相同(如上文 ID 字段中所指定)。Unity 建议在可能的情况下这样做。但是,在某些情况下这样做是不可能的,例如在发布到禁止开发人员在 iOS 和 Mac 商店中同时使用相同产品 ID 的 iOS 和 Mac 商店时。
在这些情况下,使用覆盖字段以指定产品与跨平台 ID 不同的正确标识符。
您还可以按以下方式以编程方式执行此操作
using UnityEngine;
using UnityEngine.Purchasing;
public class MyIAPManager {
public MyIAPManager () {
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
builder.AddProduct("100_gold_coins", ProductType.Consumable, new IDs
{
{"100_gold_coins_google", GooglePlay.Name},
{"100_gold_coins_mac", MacAppStore.Name}
});
// Initialize Unity IAP...
}
}
在此示例中,产品标识为“100_gold_coins_google”以对应 Google Play,而标识为“100_gold_coins_mac”以对应 Apple 应用商店。
注意:覆盖仅更改在与应用商店通信时 Unity IAP 使用的标识符。在进行 API 调用时,您仍应使用产品的跨平台标识符。
重要提示: ID 只能包含小写字母、数字、下划线或句点。
提供一个产品价格,或为在 Google Play 中创建的定价模板提供一个 ID。
从下拉菜单中选择一个定价层级。Unity 支持预定义的 Apple 价格点,但不支持任意值。
选择要上传的屏幕截图。
有关屏幕截图规范的信息,请参阅 Apple 的发布者支持文档。
你还可以使用购买配置生成器以编程方式声明你的产品列表。你必须为每个产品提供一个独特的跨商店产品 ID和产品类型
using UnityEngine;
using UnityEngine.Purchasing;
public class MyIAPManager {
public MyIAPManager () {
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
builder.AddProduct("100_gold_coins", ProductType.Consumable);
// Initialize Unity IAP...
}
}