EditorBundle.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using UnityEditor;
  2. using UnityEngine;
  3. using UnityEngine.Events;
  4. using System.Collections;
  5. [CustomEditor(typeof(Bundle))]
  6. public class EditorBundle : Editor
  7. {
  8. #region 变量
  9. public static Bundle Script;
  10. #endregion
  11. public void OnEnable()
  12. {
  13. Script = (Bundle) target;
  14. Bundle.Instance = Script;
  15. }
  16. public static void Tag()
  17. {
  18. string path;
  19. AssetImporter assetImporter;
  20. for (int i = 0; i < Script.UiList.Count; i++)
  21. {
  22. path = AssetDatabase.GetAssetPath(Script.UiList[i]);
  23. assetImporter = AssetImporter.GetAtPath(path);
  24. assetImporter.assetBundleName = "ui";
  25. }
  26. for (int i = 0; i < Script.AtlasList.Count; i++)
  27. {
  28. path = AssetDatabase.GetAssetPath(Script.AtlasList[i]);
  29. assetImporter = AssetImporter.GetAtPath(path);
  30. assetImporter.assetBundleName = "atlas";
  31. }
  32. for (int i = 0; i < Script.EffectList.Count; i++)
  33. {
  34. path = AssetDatabase.GetAssetPath(Script.EffectList[i]);
  35. assetImporter = AssetImporter.GetAtPath(path);
  36. assetImporter.assetBundleName = "effect";
  37. }
  38. for (int i = 0; i < Script.AudioList.Count; i++)
  39. {
  40. path = AssetDatabase.GetAssetPath(Script.AudioList[i]);
  41. assetImporter = AssetImporter.GetAtPath(path);
  42. assetImporter.assetBundleName = "audio";
  43. }
  44. for (int i = 0; i < Script.SceneList.Count; i++)
  45. {
  46. path = AssetDatabase.GetAssetPath(Script.SceneList[i]);
  47. assetImporter = AssetImporter.GetAtPath(path);
  48. assetImporter.assetBundleName = "scene";
  49. }
  50. for (int i = 0; i < Script.ConfigList.Count; i++)
  51. {
  52. path = AssetDatabase.GetAssetPath(Script.ConfigList[i]);
  53. assetImporter = AssetImporter.GetAtPath(path);
  54. assetImporter.assetBundleName = "config";
  55. }
  56. }
  57. [MenuItem("DashGame/Bundle/PackAndroid")]
  58. public static void PackAndroid()
  59. {
  60. Tag();
  61. BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath + "/Bundle/Android", BuildAssetBundleOptions.None, BuildTarget.Android);
  62. }
  63. [MenuItem("DashGame/Bundle/PackIOS")]
  64. public static void PackIOS()
  65. {
  66. Tag();
  67. BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath + "/Bundle/IOS", BuildAssetBundleOptions.None, BuildTarget.iOS);
  68. }
  69. [MenuItem("DashGame/Bundle/PackWindows")]
  70. public static void PackWindows()
  71. {
  72. Tag();
  73. BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath + "/Bundle/Windows", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
  74. }
  75. }