使用安卓内购
配置
在 Google Play 中设置内购:
Google Play 要求 id 全部为小写字母。为便于进行蓝图设置,最好使 iOS 和安卓 ID 相匹配。
记录使用的 ID,以及物品是否为消耗品。
如项目为蓝图项目,则可直接开始。如项目为代码项目,尚未设置项目使用在线生态系统,则需要将以下代码块添加到项目的 Build.cs 文件中:
if (Target.Platform == UnrealTargetPlatform.Android) { PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "OnlineSubsystem" }); DynamicallyLoadedModuleNames.Add("OnlineSubsystemGooglePlay"); }
找到 Project Settings > Platforms > Android 中的 Advanced APKPackaging 部分。
为 Extra Permissions 添加一个名为“com.android.vending.BILLING”的元素。
读取购买信息
可通过 Read In-App Purchase Information 蓝图节点(或相关 C++ 函数调用)读取内购信息。和其他多数在线子系统函数相同,它将 Player Controller(和一个产品标识符阵列)用作输入。下图中的 Make In-App Purchase 接受单个标识符,而 Read 可处理一个信息阵列。该函数将返回一个 In App Purchase 结构体阵列,阵列的每个元素可用于将名称、描述、价格和其他数据显示在 UI 中(或使其用于游戏性逻辑中)。
完成购买
可通过 Make an In-App Purchase 蓝图节点(或相关 C++ 函数调用)完成内购。它将 Player Controller (和一个 Product Request 结构体)用作输入。Product Request 即为来自 iTunes Connect 或 Google Play Developer console 的产品标识符(此例中为 match3theme_night),并说明产品是否为消耗品。
Make an In-App Purchase 节点为隐藏状态。因此依赖于购买是否成功的游戏性行为应使用这两个执行引脚。在线服务反馈回应之后,它们才会执行。节点还将返回购买的完成状态(如成功、失败、还原)和详细的 In App Purchase Information 结构体。
此函数存在非隐藏版本(蓝图节点显示时将不带右上角的钟表图案)。该输出执行节点不会等待在线服务反馈回应,因此隐藏函数更为常用。
测试
如要进行安卓测试,需将打包的 APK 文件上传至 Google Play,并设置正确的测试账户。此外还需要您的自定义密钥库。