123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- using System;
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine.Advertisements;
- using UnityEngine.Events;
- using UnityEngine.Purchasing;
- public class ManagerIAP : IStoreListener
- {
- #region 变量
- public static bool LoadComplete;
- public static UnityAction AdAction;
- public static ManagerIAP Instance;
- public static IStoreController IStoreController;
- public static IExtensionProvider IExtensionProvider;
- public static Dictionary<string, UnityAction> ProductDic = new Dictionary<string, UnityAction>();
- #endregion
- public ManagerIAP()
- {
- ConfigurationBuilder cb = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
- //try
- //{
- // ConfigurationBuilder cb = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
- //}
- //catch (Exception)
- //{
- // ManaDebug.Log("Debug5");
- //}
- try
- {
- InitializeAd();
- }
- catch (Exception)
- {
- ManaDebug.Log("Debug1");
- }
- try
- {
- cb = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
- }
- catch (Exception)
- {
- ManaDebug.Log("Debug2");
- }
- try
- {
- if (cb == null)
- {
- ManaDebug.Log("Debug3");
- }
- else
- {
- UnityPurchasing.Initialize(this, cb);
- }
- }
- catch (Exception)
- {
- ManaDebug.Log("Debug4");
- }
- Instance = this;
- }
- public static void InitializeAd()
- {
- if (Application.platform == RuntimePlatform.IPhonePlayer)
- {
- Advertisement.Initialize("1408492");
- }
- else if (Application.isMobilePlatform)
- {
- Advertisement.Initialize("1408493");
- }
- else if (Application.isEditor)
- {
- Advertisement.Initialize("1408493");
- }
- }
- public static void PlayAd(UnityAction action)
- {
- if (Advertisement.IsReady())
- {
- AdAction = action;
- ShowOptions showOptions = new ShowOptions();
- showOptions.resultCallback = AdCallback;
-
- Advertisement.Show(showOptions);
- }
- else
- {
- Bubble.Show(null, Language.GetStr("IAP", "LoadAd"));
-
- if (!Advertisement.isInitialized)
- {
- InitializeAd();
- }
- }
- }
- public static void Purchase(string id)
- {
- if (!LoadComplete)
- {
- Bubble.Show(null, Language.GetStr("IAP", "PurchaseFail"));
- }
- IStoreController.InitiatePurchase(id);
- }
- public static void AdCallback(ShowResult showResult)
- {
- if (showResult == ShowResult.Finished)
- {
- AdAction.Invoke();
- ManaData.AdAmt++;
- }
- else if (showResult == ShowResult.Skipped)
- {
- Bubble.Show(null, Language.GetStr("IAP", "IncompleteAd"));
- }
- else if (showResult == ShowResult.Failed)
- {
- Bubble.Show(null, Language.GetStr("IAP", "FailAd"));
- }
- }
- public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)
- {
- Bubble.Show(null, Language.GetStr("IAP", "PurchaseSuccess"));
- ProductDic[e.purchasedProduct.definition.id].Invoke();
- return PurchaseProcessingResult.Complete;
- }
- public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
- {
- LoadComplete = true;
- IStoreController = controller;
- IExtensionProvider = extensions;
- }
- public void OnInitializeFailed(InitializationFailureReason error)
- {
- LoadComplete = false;
- }
- public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
- {
- Bubble.Show(null, Language.GetStr("IAP", "PurchaseFail"));
- }
- }
|