PackPlatformiOSGUI.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using UnityEngine;
  5. using UnityEditor;
  6. namespace Pack
  7. {
  8. public partial class PackPlatformiOS
  9. {
  10. private List<string> m_NeedFulplugins = new List<string>()
  11. {
  12. "common",
  13. };
  14. private DirectoryReorderableList m_PluginReorderableList;
  15. private List<string> m_NeedFulSDKBridges = new List<string>()
  16. {
  17. };
  18. private DirectoryReorderableList m_SdkBridgeReorderableList;
  19. protected override bool HasPlatformSpecialGUI()
  20. {
  21. return true;
  22. }
  23. protected override void DrawPlatformSpecialGUI(bool editable, PackPlatformBase sourcePackPlatform)
  24. {
  25. base.DrawPlatformSpecialGUI(editable, sourcePackPlatform);
  26. PackPlatformiOS sourcePackPlatformiOS = sourcePackPlatform as PackPlatformiOS;
  27. EditorGUILayout.Space();
  28. if (ArrayUtility.Contains(defineSymbols, "BUGLY"))
  29. {
  30. if (!m_NeedFulplugins.Contains("Bugly"))
  31. {
  32. m_NeedFulplugins.Add("Bugly");
  33. }
  34. if (!m_NeedFulSDKBridges.Contains("Bugly"))
  35. {
  36. m_NeedFulSDKBridges.Add("Bugly");
  37. }
  38. }
  39. for (int i = 0, iMax = m_NeedFulplugins.Count; i < iMax; i++)
  40. {
  41. if (i >= plugins.Count)
  42. {
  43. plugins.Add(m_NeedFulplugins[i]);
  44. }
  45. else if (plugins[i] != m_NeedFulplugins[i])
  46. {
  47. plugins.Remove(m_NeedFulplugins[i]);
  48. plugins.Insert(0, m_NeedFulplugins[i]);
  49. }
  50. }
  51. for (int i = plugins.Count - 1; i >= 0; i--)
  52. {
  53. if (!Directory.Exists(Path.GetFullPath(Application.dataPath + PackConstant.PluginiOSSrcPath + plugins[i])))
  54. {
  55. plugins.RemoveAt(i);
  56. }
  57. }
  58. if (m_PluginReorderableList == null)
  59. {
  60. m_PluginReorderableList = new DirectoryReorderableList(plugins, sourcePackPlatformiOS.plugins, m_NeedFulplugins, Application.dataPath + PackConstant.PluginiOSSrcPath);
  61. }
  62. else
  63. {
  64. m_PluginReorderableList.SetParams(plugins, sourcePackPlatformiOS.plugins, m_NeedFulplugins, Application.dataPath + PackConstant.PluginiOSSrcPath);
  65. }
  66. float height = m_PluginReorderableList.GetHeight();
  67. Rect totalPosition = EditorGUILayout.GetControlRect(true, height, PackGUI.styles.label);
  68. Rect labelPosition = new Rect(totalPosition.x + PackGUI.indent, totalPosition.y, EditorGUIUtility.labelWidth - PackGUI.indent, PackGUI.kSingleLineHeight);
  69. int id = GUIUtility.GetControlID(PackGUI.s_DelayedTextFieldHash, FocusType.Keyboard, labelPosition);
  70. EditorGUI.HandlePrefixLabel(totalPosition, labelPosition, EditorGUIUtility.TrTextContent("iOS目录替换", PackConstant.PluginiOSDestPath), id, PackGUI.styles.label);
  71. Rect fieldPosition = new Rect(totalPosition.x + PackGUI.indent + EditorGUIUtility.labelWidth, totalPosition.y, totalPosition.width - PackGUI.indent - EditorGUIUtility.labelWidth - 100, height);
  72. Rect resetPosition = new Rect(totalPosition.x + totalPosition.width - 90, totalPosition.y, 80, PackGUI.kSingleLineHeight);
  73. m_PluginReorderableList.DoList(fieldPosition);
  74. if (!ArrayUtility.ArrayEquals(sourcePackPlatformiOS.plugins.ToArray(), plugins.ToArray()))
  75. {
  76. if (GUI.Button(resetPosition, EditorGUIUtility.TrTextContent("重置默认", string.Join(";", sourcePackPlatformiOS.plugins)), PackGUI.styles.miniButton))
  77. {
  78. plugins.Clear();
  79. plugins.AddRange(sourcePackPlatformiOS.plugins);
  80. }
  81. }
  82. for (int i = 0, iMax = m_NeedFulSDKBridges.Count; i < iMax; i++)
  83. {
  84. if (i >= sdkBridges.Count)
  85. {
  86. sdkBridges.Add(m_NeedFulSDKBridges[i]);
  87. }
  88. else if (sdkBridges[i] != m_NeedFulSDKBridges[i])
  89. {
  90. sdkBridges.Remove(m_NeedFulSDKBridges[i]);
  91. sdkBridges.Insert(0, m_NeedFulSDKBridges[i]);
  92. }
  93. }
  94. for (int i = sdkBridges.Count - 1; i >= 0; i--)
  95. {
  96. if (!Directory.Exists(Path.GetFullPath(Application.dataPath + PackConstant.SDKBridgeSrcPath + sdkBridges[i])))
  97. {
  98. sdkBridges.RemoveAt(i);
  99. }
  100. }
  101. if (m_SdkBridgeReorderableList == null)
  102. {
  103. m_SdkBridgeReorderableList = new DirectoryReorderableList(sdkBridges, sourcePackPlatformiOS.sdkBridges, m_NeedFulSDKBridges, Application.dataPath + PackConstant.SDKBridgeSrcPath);
  104. }
  105. else
  106. {
  107. m_SdkBridgeReorderableList.SetParams(sdkBridges, sourcePackPlatformiOS.sdkBridges, m_NeedFulSDKBridges, Application.dataPath + PackConstant.SDKBridgeSrcPath);
  108. }
  109. height = m_SdkBridgeReorderableList.GetHeight();
  110. totalPosition = EditorGUILayout.GetControlRect(true, height, PackGUI.styles.label);
  111. labelPosition = new Rect(totalPosition.x + PackGUI.indent, totalPosition.y, EditorGUIUtility.labelWidth - PackGUI.indent, PackGUI.kSingleLineHeight);
  112. id = GUIUtility.GetControlID(PackGUI.s_DelayedTextFieldHash, FocusType.Keyboard, labelPosition);
  113. EditorGUI.HandlePrefixLabel(totalPosition, labelPosition, EditorGUIUtility.TrTextContent("SDKBridge目录替换", PackConstant.SDKBridgeDestPath), id, PackGUI.styles.label);
  114. fieldPosition = new Rect(totalPosition.x + PackGUI.indent + EditorGUIUtility.labelWidth, totalPosition.y, totalPosition.width - PackGUI.indent - EditorGUIUtility.labelWidth - 100, height);
  115. resetPosition = new Rect(totalPosition.x + totalPosition.width - 90, totalPosition.y, 80, PackGUI.kSingleLineHeight);
  116. m_SdkBridgeReorderableList.DoList(fieldPosition);
  117. if (!ArrayUtility.ArrayEquals(sourcePackPlatformiOS.sdkBridges.ToArray(), sdkBridges.ToArray()))
  118. {
  119. if (GUI.Button(resetPosition, EditorGUIUtility.TrTextContent("重置默认", string.Join(";", sourcePackPlatformiOS.sdkBridges)), PackGUI.styles.miniButton))
  120. {
  121. sdkBridges.Clear();
  122. sdkBridges.AddRange(sourcePackPlatformiOS.sdkBridges);
  123. }
  124. }
  125. if (plugins.Contains("Lebian"))
  126. {
  127. EditorGUILayout.Space();
  128. PackGUI.DrawDelayedTextField("乐变MainChId", sourcePackPlatformiOS.leBian_MainChId, ref leBian_MainChId, true);
  129. PackGUI.DrawDelayedTextField("乐变ClientChId", sourcePackPlatformiOS.leBian_ClientChId, ref leBian_ClientChId, true);
  130. PackGUI.DrawDelayedTextField("乐变SECID", sourcePackPlatformiOS.leBian_SECID, ref leBian_SECID, true);
  131. }
  132. }
  133. }
  134. }