using System; using UnityEngine; using UnityEngine.Purchasing; using UnityEngine.Purchasing.Extension; public class IAPManager : MonoBehaviour, IDetailedStoreListener { private IStoreController controller; private IExtensionProvider extensions; private string subscriptionId = "com.yourapp.sub.month"; void Start() { var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct(subscriptionId, ProductType.Subscription); UnityPurchasing.Initialize(this, builder); // 使用新版接口 } public void OnInitialized(IStoreController controller, IExtensionProvider extensions) { this.controller = controller; this.extensions = extensions; Debug.Log("IAP 初始化成功"); } public void OnInitializeFailed(InitializationFailureReason error) { Debug.LogError("IAP 初始化失败: " + error); } public void OnInitializeFailed(InitializationFailureReason error, string message) { Debug.LogError($"详细失败信息: {error} - {message}"); } public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) { if (args.purchasedProduct.definition.id == subscriptionId) { Debug.Log("订阅成功!"); // 解锁功能 } return PurchaseProcessingResult.Complete; } public void OnPurchaseFailed(Product product, PurchaseFailureDescription failureDescription) { Debug.LogError($"购买失败: {failureDescription.message}"); } public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason) { Debug.LogError($"购买失败: {failureReason}"); } }