MenuItems.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using System.IO;
  2. using UnityEditor;
  3. using UnityEngine;
  4. using VEngine.Editor.Builds;
  5. namespace VEngine.Editor
  6. {
  7. public static class MenuItems
  8. {
  9. [MenuItem("XAssets/Compute CRC")]
  10. public static void ComputeCRC()
  11. {
  12. var target = Selection.activeObject;
  13. var path = AssetDatabase.GetAssetPath(target);
  14. var crc32 = Utility.ComputeCRC32(File.OpenRead(path));
  15. Debug.LogFormat("ComputeCRC for {0} with {1}", path, crc32);
  16. }
  17. [MenuItem("XAssets/Versions/Build Bundles")]
  18. public static void BuildBundles()
  19. {
  20. BuildScript.BuildBundles();
  21. }
  22. [MenuItem("XAssets/Versions/Build Bundles Res Init")]
  23. public static void BuildBundlesResIn()
  24. {
  25. BuildScript.BuildCustomBundles(new string[] { "ResIn/Txt" }, "BuildSetting");
  26. }
  27. [MenuItem("XAssets/Versions/Build Bundles All")]
  28. public static void BuildBundlesRes()
  29. {
  30. BuildScript.BuildCustomBundles(new string[] { "Res", "ResIn" }, "BuildSetting");
  31. }
  32. [MenuItem("XAssets/Versions/Build Player")]
  33. public static void BuildPlayer()
  34. {
  35. BuildScript.BuildPlayer();
  36. }
  37. [MenuItem("XAssets/Versions/Copy To StreamingAssets")]
  38. public static void CopyToStreamingAssets()
  39. {
  40. BuildScript.CopyToStreamingAssets();
  41. }
  42. [MenuItem("XAssets/Versions/Clear Bundles")]
  43. public static void ClearBuild()
  44. {
  45. if (EditorUtility.DisplayDialog("提示", "清理构建数据将无法正常增量打包,确认清理?", "确定"))
  46. {
  47. var buildPath = Settings.PlatformBuildPath;
  48. Directory.Delete(buildPath, true);
  49. var directory = Settings.BuildPlayerDataPath;
  50. if (!Directory.Exists(directory)) return;
  51. Directory.Delete(directory, true);
  52. directory = Settings.UnityBuildPath;
  53. if (!Directory.Exists(directory)) return;
  54. Directory.Delete(directory, true);
  55. ClearDownload();
  56. }
  57. }
  58. [MenuItem("XAssets/Versions/Clear History")]
  59. public static void ClearHistory()
  60. {
  61. BuildScript.ClearHistory();
  62. }
  63. [MenuItem("XAssets/Versions/Clear Download")]
  64. public static void ClearDownload()
  65. {
  66. Directory.Delete(Application.persistentDataPath, true);
  67. }
  68. [MenuItem("XAssets/Versions/Clear Temporary")]
  69. public static void ClearTemporary()
  70. {
  71. Directory.Delete(Application.temporaryCachePath, true);
  72. }
  73. [MenuItem("XAssets/Versions/View Settings")]
  74. public static void ViewSettings()
  75. {
  76. Settings.PingWithSelected(Settings.GetDefaultSettings());
  77. }
  78. [MenuItem("XAssets/Versions/View Build")]
  79. public static void ViewBuild()
  80. {
  81. EditorUtility.OpenWithDefaultApp(Settings.PlatformBuildPath);
  82. }
  83. [MenuItem("XAssets/Versions/View Download")]
  84. public static void ViewDownload()
  85. {
  86. EditorUtility.OpenWithDefaultApp(Application.persistentDataPath);
  87. }
  88. [MenuItem("XAssets/Versions/View Temporary")]
  89. public static void ViewTemporary()
  90. {
  91. EditorUtility.OpenWithDefaultApp(Application.temporaryCachePath);
  92. }
  93. #if !UNITY_2018_1_OR_NEWER
  94. [MenuItem("XAssets/Copy Path")]
  95. public static void CopyAssetPath()
  96. {
  97. EditorGUIUtility.systemCopyBuffer = AssetDatabase.GetAssetPath(Selection.activeObject);
  98. }
  99. #endif
  100. }
  101. }