MB3_MBVersionConcreteEditor.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. /**
  2. * \brief Hax! DLLs cannot interpret preprocessor directives, so this class acts as a "bridge"
  3. */
  4. using System;
  5. using UnityEngine;
  6. using UnityEditor;
  7. using System.Collections;
  8. namespace DigitalOpus.MB.Core{
  9. public class MBVersionEditorConcrete : MBVersionEditorInterface {
  10. //Used to map the activeBuildTarget to a string argument needed by TextureImporter.GetPlatformTextureSettings
  11. //The allowed values for GetPlatformTextureSettings are "Web", "Standalone", "iPhone", "Android" and "FlashPlayer".
  12. public string GetPlatformString() {
  13. #if (UNITY_4_6 || UNITY_4_7 || UNITY_4_5 || UNITY_4_3 || UNITY_4_2 || UNITY_4_1 || UNITY_4_0_1 || UNITY_4_0 || UNITY_3_5)
  14. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.iPhone){
  15. return "iPhone";
  16. }
  17. #else
  18. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.iOS) {
  19. return "iPhone";
  20. }
  21. #endif
  22. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.WSAPlayer)
  23. {
  24. return "Windows Store Apps";
  25. }
  26. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.PSP2)
  27. {
  28. return "PSP2";
  29. }
  30. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.PS4)
  31. {
  32. return "PS4";
  33. }
  34. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.XboxOne)
  35. {
  36. return "XboxOne";
  37. }
  38. #if (UNITY_2017_3_OR_NEWER)
  39. #else
  40. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.SamsungTV)
  41. {
  42. return "Samsung TV";
  43. }
  44. #endif
  45. #if (UNITY_5_5_OR_NEWER)
  46. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.N3DS)
  47. {
  48. return "Nintendo 3DS";
  49. }
  50. #endif
  51. #if (UNITY_5_3 || UNITY_5_2 || UNITY_5_3_OR_NEWER)
  52. #if (UNITY_2018_1_OR_NEWER)
  53. // wiiu support was removed in 2018.1
  54. #else
  55. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.WiiU)
  56. {
  57. return "WiiU";
  58. }
  59. #endif
  60. #endif
  61. #if (UNITY_5_3 || UNITY_5_3_OR_NEWER)
  62. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.tvOS)
  63. {
  64. return "tvOS";
  65. }
  66. #endif
  67. #if (UNITY_2018_2_OR_NEWER)
  68. #else
  69. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.Tizen)
  70. {
  71. return "Tizen";
  72. }
  73. #endif
  74. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android) {
  75. return "Android";
  76. }
  77. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneLinux ||
  78. EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneLinux64 ||
  79. EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneLinuxUniversal ||
  80. EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows ||
  81. EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows64 ||
  82. #if UNITY_2017_3_OR_NEWER
  83. EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneOSX
  84. #else
  85. EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneOSXIntel ||
  86. EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneOSXIntel64 ||
  87. EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneOSXUniversal
  88. #endif
  89. )
  90. {
  91. return "Standalone";
  92. }
  93. #if !UNITY_5_4_OR_NEWER
  94. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.WebPlayer ||
  95. EditorUserBuildSettings.activeBuildTarget == BuildTarget.WebPlayerStreamed
  96. )
  97. {
  98. return "Web";
  99. }
  100. #endif
  101. if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.WebGL)
  102. {
  103. return "WebGL";
  104. }
  105. return null;
  106. }
  107. public void RegisterUndo(UnityEngine.Object o, string s) {
  108. #if (UNITY_4_2 || UNITY_4_1 || UNITY_4_0_1 || UNITY_4_0 || UNITY_3_5)
  109. Undo.RegisterUndo(o, s);
  110. #else
  111. Undo.RecordObject(o, s);
  112. #endif
  113. }
  114. public void SetInspectorLabelWidth(float width) {
  115. #if (UNITY_4_2 || UNITY_4_1 || UNITY_4_0_1 || UNITY_4_0 || UNITY_3_5)
  116. EditorGUIUtility.LookLikeControls(width);
  117. #else
  118. EditorGUIUtility.labelWidth = width;
  119. #endif
  120. }
  121. public void UpdateIfDirtyOrScript(SerializedObject so)
  122. {
  123. #if UNITY_5_6_OR_NEWER
  124. so.UpdateIfRequiredOrScript();
  125. #else
  126. so.UpdateIfDirtyOrScript();
  127. #endif
  128. }
  129. public UnityEngine.Object PrefabUtility_GetCorrespondingObjectFromSource(GameObject go)
  130. {
  131. #if UNITY_2018_2_OR_NEWER
  132. return PrefabUtility.GetCorrespondingObjectFromSource(go);
  133. #else
  134. return PrefabUtility.GetPrefabParent(go);
  135. #endif
  136. }
  137. public bool IsAutoPVRTC(TextureImporterFormat platformFormat, TextureImporterFormat platformDefaultFormat)
  138. {
  139. if ((
  140. #if UNITY_2017_1_OR_NEWER
  141. platformFormat == TextureImporterFormat.Automatic
  142. #elif UNITY_5_5_OR_NEWER
  143. platformFormat == TextureImporterFormat.Automatic ||
  144. platformFormat == TextureImporterFormat.Automatic16bit ||
  145. platformFormat == TextureImporterFormat.AutomaticCompressed ||
  146. platformFormat == TextureImporterFormat.AutomaticCompressedHDR ||
  147. platformFormat == TextureImporterFormat.AutomaticCrunched ||
  148. platformFormat == TextureImporterFormat.AutomaticHDR
  149. #else
  150. platformFormat == TextureImporterFormat.Automatic16bit ||
  151. platformFormat == TextureImporterFormat.AutomaticCompressed ||
  152. platformFormat == TextureImporterFormat.AutomaticCrunched
  153. #endif
  154. ) && (
  155. platformDefaultFormat == TextureImporterFormat.PVRTC_RGB2 ||
  156. platformDefaultFormat == TextureImporterFormat.PVRTC_RGB4 ||
  157. platformDefaultFormat == TextureImporterFormat.PVRTC_RGBA2 ||
  158. platformDefaultFormat == TextureImporterFormat.PVRTC_RGBA4
  159. ))
  160. {
  161. return true;
  162. }
  163. return false;
  164. }
  165. }
  166. }