HybridCLREditor.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using HybridCLR.Editor;
  4. using HybridCLR.Editor.Settings;
  5. using UnityEditor;
  6. namespace ET
  7. {
  8. public static class HybridCLREditor
  9. {
  10. [MenuItem("HybridCLR/CopyAotDlls")]
  11. public static void CopyAotDll()
  12. {
  13. BuildTarget target = EditorUserBuildSettings.activeBuildTarget;
  14. string fromDir = Path.Combine(HybridCLRSettings.Instance.strippedAOTDllOutputRootDir, target.ToString());
  15. string toDir = "Assets/Bundles/AotDlls";
  16. if (Directory.Exists(toDir))
  17. {
  18. Directory.Delete(toDir, true);
  19. }
  20. Directory.CreateDirectory(toDir);
  21. AssetDatabase.Refresh();
  22. foreach (string aotDll in HybridCLRSettings.Instance.patchAOTAssemblies)
  23. {
  24. File.Copy(Path.Combine(fromDir, aotDll), Path.Combine(toDir, $"{aotDll}.bytes"), true);
  25. }
  26. // 设置ab包
  27. AssetImporter assetImporter = AssetImporter.GetAtPath(toDir);
  28. assetImporter.assetBundleName = "AotDlls.unity3d";
  29. AssetDatabase.SaveAssets();
  30. AssetDatabase.Refresh();
  31. }
  32. }
  33. }