我一直在查看Unity Engine / Unity 3d文档以帮助解决这个问题:Unity IAP not initializing。
我使用单独的问题(此处),而不是尝试通过评论来梳理信息 - 希望能够发现更多信息,以便回答 >问题可以提前......
我已在sample code中看到以下内容,使用指定的侦听器和配置初始化Unity IAP :
{ [unowned self] (_) in
// Block content
}
我能找到的是using UnityEngine;
using UnityEngine.Purchasing;
public class MyStoreClass : MonoBehaviour, IStoreListener {
void Start() {
var module = StandardPurchasingModule.Instance();
ConfigurationBuilder builder = ConfigurationBuilder.Instance(module);
builder.AddProduct("levelpackfoo", ProductType.NonConsumable);
UnityPurchasing.Initialize(this, builder);
}
public void OnInitialized(IStoreController controller, IExtensionProvider extensions) {}
public void OnInitializeFailed(InitializationFailureReason error) {}
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { return PurchaseProcessingResult.Complete; }
public void OnPurchaseFailed(Product item, PurchaseFailureReason r) {}
}
类和静态方法StandardPurchasingModule
......
这只是docs / api中的占位符,需要实现吗?或者,它是否为Apple App Store等提供默认实现?
例如,Implementing a Store表明必须提供Instance()
的实施。
更重要的是,IStore
的实现会返回IPurchasingModule
...而且它是IStore
,需要作为静态参数IPurchasingModule
{ {3}}:
public static Purchasing.ConfigurationBuilder Instance(Purchasing.Extension.IPurchasingModule first, params IPurchasingModule[] rest);
可以使用StandardPurchasingModule.Instance()
吗?或者是否有必要为这套商店和购买界面提供实施?
答案 0 :(得分:1)
TL; DR:是的,你可以使用它。只需检查您的Unity版本是否支持您需要的商店。
StandardPurchasingModule的文档几乎不存在。但是,如果您查看Unity tutorial for implementing IAP并阅读所提供的购买者脚本中的注释,您将看到以下关于StandardPurchasingModule的评论:
//创建一个构建器,首先传递一套Unity提供的商店。
这意味着StandardPurchasingModule是IPurchasingModule的一个实现,它为您的Unity版本支持的商店实现功能。所以是的,只要您的Unity版本支持您需要的商店,您就应该可以使用它。