暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ScriptingStoreCallback.cs 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #nullable enable
  2. using System;
  3. using System.Collections.Generic;
  4. using Uniject;
  5. using UnityEngine.Purchasing.Extension;
  6. namespace UnityEngine.Purchasing
  7. {
  8. /// <summary>
  9. /// Wraps an IStoreCallback executing methods on
  10. /// the scripting thread.
  11. /// </summary>
  12. internal class ScriptingStoreCallback : IStoreCallback
  13. {
  14. readonly IStoreCallback m_ForwardTo;
  15. readonly IUtil m_Util;
  16. public ScriptingStoreCallback(IStoreCallback forwardTo, IUtil util)
  17. {
  18. m_ForwardTo = forwardTo;
  19. m_Util = util;
  20. }
  21. public ProductCollection products => m_ForwardTo.products;
  22. [Obsolete]
  23. public void OnSetupFailed(InitializationFailureReason reason)
  24. {
  25. m_Util.RunOnMainThread(() => m_ForwardTo.OnSetupFailed(reason, null));
  26. }
  27. public void OnSetupFailed(InitializationFailureReason reason, string? message)
  28. {
  29. m_Util.RunOnMainThread(() => m_ForwardTo.OnSetupFailed(reason, message));
  30. }
  31. public void OnProductsRetrieved(List<ProductDescription> products)
  32. {
  33. m_Util.RunOnMainThread(() => m_ForwardTo.OnProductsRetrieved(products));
  34. }
  35. public void OnPurchaseSucceeded(string id, string? receipt, string transactionID)
  36. {
  37. m_Util.RunOnMainThread(() => m_ForwardTo.OnPurchaseSucceeded(id, receipt, transactionID));
  38. }
  39. public void OnAllPurchasesRetrieved(List<Product> purchasedProducts)
  40. {
  41. m_Util.RunOnMainThread(() => m_ForwardTo.OnAllPurchasesRetrieved(purchasedProducts));
  42. }
  43. public void OnPurchaseFailed(PurchaseFailureDescription desc)
  44. {
  45. m_Util.RunOnMainThread(() => m_ForwardTo.OnPurchaseFailed(desc));
  46. }
  47. public bool useTransactionLog { get; set; }
  48. }
  49. }