No Description
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.

IapButtonMenu.cs 3.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System;
  2. using UnityEngine;
  3. using UnityEngine.Purchasing;
  4. using UnityEngine.UI;
  5. namespace UnityEditor.Purchasing
  6. {
  7. /// <summary>
  8. /// IAPButtonMenu class creates options in menus to create the <see cref="IAPButton"/>.
  9. /// </summary>
  10. public static class IAPButtonMenu
  11. {
  12. /// <summary>
  13. /// Add option to create a IAPButton from the GameObject menu.
  14. /// </summary>
  15. [MenuItem("GameObject/" + IapMenuConsts.PurchasingDisplayName + "/IAP Button (Legacy)", false, 11)]
  16. public static void GameObjectCreateUnityIAPButton()
  17. {
  18. CreateUnityIAPButtonInternal("IAP Button (Legacy)");
  19. GenericEditorMenuItemClickEventSenderHelpers.SendGameObjectMenuAddIapButtonEvent();
  20. }
  21. /// <summary>
  22. /// Add option to create a CodelessIAPButton from the GameObject menu.
  23. /// </summary>
  24. [MenuItem("GameObject/" + IapMenuConsts.PurchasingDisplayName + "/IAP Button", false, 10)]
  25. public static void GameObjectCreateUnityCodelessIAPButton()
  26. {
  27. CreateUnityCodelessIAPButtonInternal("IAP Button");
  28. GenericEditorMenuItemClickEventSenderHelpers.SendGameObjectMenuAddCodelessIapButtonEvent();
  29. }
  30. /// <summary>
  31. /// Add option to create a IAPButton from the Window/UnityIAP menu.
  32. /// </summary>
  33. [MenuItem(IapMenuConsts.MenuItemRoot + "/Create IAP Button (Legacy)", false, 101)]
  34. public static void CreateUnityIAPButton()
  35. {
  36. CreateUnityIAPButtonInternal("IAP Button (Legacy)");
  37. GenericEditorMenuItemClickEventSenderHelpers.SendIapMenuAddIapButtonEvent();
  38. GameServicesEventSenderHelpers.SendTopMenuCreateIapButtonEvent();
  39. }
  40. /// <summary>
  41. /// Add option to create a CodelessIAPButton from the Window/UnityIAP menu.
  42. /// </summary>
  43. [MenuItem(IapMenuConsts.MenuItemRoot + "/Create IAP Button", false, 100)]
  44. public static void CreateUnityCodelessIAPButton()
  45. {
  46. CreateUnityCodelessIAPButtonInternal("IAP Button");
  47. GenericEditorMenuItemClickEventSenderHelpers.SendIapMenuAddCodelessIapButtonEvent();
  48. GameServicesEventSenderHelpers.SendTopMenuCreateCodelessIapButtonEvent();
  49. }
  50. static void CreateUnityIAPButtonInternal(string name)
  51. {
  52. var buttonObject = ItemCreationUtility.CreateGameObject(name, typeof(Button));
  53. if (buttonObject)
  54. {
  55. //disable Warning CS0618 IAPButton is deprecated, please use CodelessIAPButton instead.
  56. #pragma warning disable 0618
  57. var iapButton = buttonObject.AddComponent<IAPButton>();
  58. if (iapButton != null)
  59. {
  60. UnityEditorInternal.ComponentUtility.MoveComponentUp(iapButton);
  61. UnityEditorInternal.ComponentUtility.MoveComponentUp(iapButton);
  62. UnityEditorInternal.ComponentUtility.MoveComponentUp(iapButton);
  63. }
  64. }
  65. }
  66. static void CreateUnityCodelessIAPButtonInternal(string name)
  67. {
  68. var emptyObject = ItemCreationUtility.CreateGameObject(name);
  69. if (emptyObject)
  70. {
  71. emptyObject.AddComponent<CodelessIAPButton>();
  72. }
  73. }
  74. }
  75. }