T 扩展类型。
获取指定类型的特定于商店的扩展。
使用 GetExtension
恢复之前完成的购买交易的示例类:
using UnityEngine;
using UnityEngine.Purchasing;
public class MyStoreClass : MonoBehaviour, IStoreListener
{
IExtensionProvider m_ExtensionProvider;
void Awake()
{
ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
builder.AddProduct("levelpackfoo", ProductType.NonConsumable);
UnityPurchasing.Initialize(this, builder);
}
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
m_ExtensionProvider = extensions;
}
public void OnInitializeFailed(InitializationFailureReason error) {}
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { return PurchaseProcessingResult.Complete; }
public void OnPurchaseFailed(Product item, PurchaseFailureReason r) {}
public void RestoreTransactions()
{
if (m_ExtensionProvider != null)
{
// NOTICE: No need here for Application.platform tests. Move platform tests to UI.
// Extensions are designed in a way to work regardless of which platform they are
// run on. For the UI, only when on Apple platforms display a "Restore Purchases"
// button, per Apple's In-App Purchase Programming Guide.
IAppleExtensions apple = m_ExtensionProvider.GetExtension<IAppleExtensions>();
apple.RestoreTransactions((result) => {
// Restore purchases initiated. See ProcessPurchase for any restored transactions.
});
}
}
}