#region Copyright RenGuiYou. All rights reserved. //===================================================== // NeatlyFrameWork // Author: RenGuiyou // Feedback: mailto:750539605@qq.com //===================================================== #endregion using System.Collections.Generic; using Pandora; using PandoraEditor; using UnityEditor; using UnityEngine; namespace NeatlyEditor { public static class AssetBundleExport { private static string BundleExportPath = $"{Application.dataPath}/temp/{NeatlyConfig.BUNDLE_PACKAGE}"; public static BuildTarget BuildTarget { get { #if UNITY_IPHONE return BuildTarget.iOS; #elif UNITY_ANDROID return BuildTarget.Android; #elif UNITY_WP8 return BuildTarget.WP8Player; #elif UNITY_METRO return BuildTarget.MetroPlayer; #elif UNITY_STANDALONE_OSX return BuildTarget.StandaloneOSXIntel; #else return BuildTarget.StandaloneWindows; #endif } } public static void ExportAssetBundle(Dictionary> buildMap = null) { AssetBundleBuild[] bundleBuildArray = null; if (buildMap != null) { bundleBuildArray = new AssetBundleBuild[buildMap.Count]; int i = 0; foreach (var kv in buildMap) { bundleBuildArray[i].assetBundleName = kv.Key; bundleBuildArray[i].assetNames = kv.Value.ToArray(); i++; } } PdrFileUtil.CreateDirectory(BundleExportPath); var options = BuildSetting.ProjectBuildSetting.is_decompress ? BuildAssetBundleOptions.UncompressedAssetBundle : BuildAssetBundleOptions.ChunkBasedCompression; options = options | BuildAssetBundleOptions.DisableWriteTypeTree; if (BuildTarget == BuildTarget.StandaloneWindows) { options = BuildAssetBundleOptions.UncompressedAssetBundle | BuildAssetBundleOptions.DisableWriteTypeTree; } if (bundleBuildArray != null) { BuildPipeline.BuildAssetBundles(BundleExportPath, bundleBuildArray, options, BuildTarget); } else { BuildPipeline.BuildAssetBundles(BundleExportPath, options, BuildTarget); } } } }