PlatformSpecificSetup.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace UnityEditor.TestTools.TestRunner
  5. {
  6. [Serializable]
  7. internal class PlatformSpecificSetup
  8. {
  9. [SerializeField]
  10. private ApplePlatformSetup m_AppleiOSPlatformSetup = new ApplePlatformSetup(BuildTarget.iOS);
  11. [SerializeField]
  12. private ApplePlatformSetup m_AppleTvOSPlatformSetup = new ApplePlatformSetup(BuildTarget.tvOS);
  13. [SerializeField]
  14. private XboxOnePlatformSetup m_XboxOnePlatformSetup = new XboxOnePlatformSetup();
  15. [SerializeField]
  16. private AndroidPlatformSetup m_AndroidPlatformSetup = new AndroidPlatformSetup();
  17. [SerializeField]
  18. private SwitchPlatformSetup m_SwitchPlatformSetup = new SwitchPlatformSetup();
  19. #if UNITY_2019_3_OR_NEWER
  20. [SerializeField]
  21. private StadiaPlatformSetup m_StadiaPlatformSetup = new StadiaPlatformSetup();
  22. #endif
  23. [SerializeField]
  24. private UwpPlatformSetup m_UwpPlatformSetup = new UwpPlatformSetup();
  25. [SerializeField]
  26. private LuminPlatformSetup m_LuminPlatformSetup = new LuminPlatformSetup();
  27. private IDictionary<BuildTarget, IPlatformSetup> m_SetupTypes;
  28. [SerializeField]
  29. private BuildTarget m_Target;
  30. public PlatformSpecificSetup()
  31. {
  32. }
  33. public PlatformSpecificSetup(BuildTarget target)
  34. {
  35. m_Target = target;
  36. }
  37. public void Setup()
  38. {
  39. var dictionary = GetSetup();
  40. if (!dictionary.ContainsKey(m_Target))
  41. {
  42. return;
  43. }
  44. dictionary[m_Target].Setup();
  45. }
  46. public void PostBuildAction()
  47. {
  48. var dictionary = GetSetup();
  49. if (!dictionary.ContainsKey(m_Target))
  50. {
  51. return;
  52. }
  53. dictionary[m_Target].PostBuildAction();
  54. }
  55. public void PostSuccessfulBuildAction()
  56. {
  57. var dictionary = GetSetup();
  58. if (!dictionary.ContainsKey(m_Target))
  59. {
  60. return;
  61. }
  62. dictionary[m_Target].PostSuccessfulBuildAction();
  63. }
  64. public void PostSuccessfulLaunchAction()
  65. {
  66. var dictionary = GetSetup();
  67. if (!dictionary.ContainsKey(m_Target))
  68. {
  69. return;
  70. }
  71. dictionary[m_Target].PostSuccessfulLaunchAction();
  72. }
  73. public void CleanUp()
  74. {
  75. var dictionary = GetSetup();
  76. if (!dictionary.ContainsKey(m_Target))
  77. {
  78. return;
  79. }
  80. dictionary[m_Target].CleanUp();
  81. }
  82. private IDictionary<BuildTarget, IPlatformSetup> GetSetup()
  83. {
  84. m_SetupTypes = new Dictionary<BuildTarget, IPlatformSetup>()
  85. {
  86. {BuildTarget.iOS, m_AppleiOSPlatformSetup},
  87. {BuildTarget.tvOS, m_AppleTvOSPlatformSetup},
  88. {BuildTarget.XboxOne, m_XboxOnePlatformSetup},
  89. {BuildTarget.Android, m_AndroidPlatformSetup},
  90. {BuildTarget.WSAPlayer, m_UwpPlatformSetup},
  91. {BuildTarget.Lumin, m_LuminPlatformSetup},
  92. #if UNITY_2019_3_OR_NEWER
  93. {BuildTarget.Stadia, m_StadiaPlatformSetup},
  94. #endif
  95. {BuildTarget.Switch, m_SwitchPlatformSetup}
  96. };
  97. return m_SetupTypes;
  98. }
  99. }
  100. }