using UnityEngine; using UnityEngine.Purchasing; using UnityEngine.Purchasing.Extension; public class IAPManager : MonoBehaviour, IDetailedStoreListener { private IStoreController controller; private IExtensionProvider extensions; private string productId = "your_product_id"; void Start() { var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); builder.AddProduct(productId, ProductType.Consumable); 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 OnPurchaseFailed(Product product, PurchaseFailureDescription failureDescription) { Debug.LogError($"购买失败: {failureDescription.reason}"); } public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { if (e.purchasedProduct.definition.id == productId) { Debug.Log("购买成功: " + e.purchasedProduct.definition.id); // 处理道具发放逻辑 } return PurchaseProcessingResult.Complete; } public void OnInitializeFailed(InitializationFailureReason error, string message) { Debug.LogError("IAP 初始化失败: " + error); } public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason) { Debug.LogError($"购买失败: {failureReason}"); } }