private void OnEnable() { assetPackerConfig = AssetPackerUtil.GetAssetPackerConfig(); foreach (var group in assetPackerConfig.groupDatas) { foreach (var data in group.assetFiles) { if (!addressRepeatDataDic.TryGetValue(data.assetAddress, out List <AssetPackerAddressData> dataList)) { dataList = new List <AssetPackerAddressData>(); addressRepeatDataDic.Add(data.assetAddress, dataList); } dataList.Add(data); } } if (PlayerSettingsUtility.HasScriptingDefineSymbol(ASSET_BUNDLE_SYMBOL)) { runMode = RunMode.AssetBundle; } }
private void DrawPackOperation() { if (bundleBuildConfig == null) { bundleBuildConfig = AssetPackerUtil.ReadBundleBuildConfig(); } EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); { EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true)); { EditorGUILayout.LabelField(Contents.BuildTitleContent, EGUIStyles.MiddleCenterLabel); EditorGUI.BeginChangeCheck(); { bundleBuildConfig.bundleOutputDir = EGUILayout.DrawDiskFolderSelection(Contents.BuildOutputDirStr, bundleBuildConfig.bundleOutputDir); bundleBuildConfig.pathFormat = (BundlePathFormatType)EditorGUILayout.EnumPopup(Contents.BuildPathFormatContent, bundleBuildConfig.pathFormat); bundleBuildConfig.cleanupBeforeBuild = EditorGUILayout.Toggle(Contents.BuildCleanup, bundleBuildConfig.cleanupBeforeBuild); bundleBuildConfig.buildTarget = (ValidBuildTarget)EditorGUILayout.EnumPopup(Contents.BuildTargetContent, bundleBuildConfig.buildTarget); bundleBuildConfig.compression = (CompressOption)EditorGUILayout.EnumPopup(Contents.BuildCompressionContent, bundleBuildConfig.compression); } if (EditorGUI.EndChangeCheck()) { AssetPackerUtil.WriteBundleBuildConfig(bundleBuildConfig); } } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.Width(160), GUILayout.ExpandHeight(true)); { EditorGUILayout.LabelField(Contents.OperationTitleContent, EGUIStyles.MiddleCenterLabel); if (GUILayout.Button(Contents.OperationBuildAddressContent)) { AssetAddressUtil.BuildAssetAddressConfig(); } EditorGUILayout.Space(); if (GUILayout.Button(Contents.OperationCleanBundleNameContent)) { AssetPackerUtil.ClearBundleNames(true); } if (GUILayout.Button(Contents.OperationSetBundleNameContent)) { AssetPackerUtil.SetAssetBundleNames(assetPackerConfig, bundleBuildConfig.pathFormat, true); } EditorGUILayout.Space(); if (GUILayout.Button("Pack Bundle")) { AssetPackerUtil.PackAssetBundle(assetPackerConfig, bundleBuildConfig); } } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.Width(160)); { EGUI.BeginGUIBackgroundColor(Color.red); { if (GUILayout.Button(Contents.OperationAutoBuildContent, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true))) { EditorApplication.delayCall += () => { AssetAddressUtil.BuildAssetAddressConfig(); AssetPackerUtil.ClearBundleNames(true); AssetPackerUtil.SetAssetBundleNames(assetPackerConfig, bundleBuildConfig.pathFormat, true); AssetPackerUtil.PackAssetBundle(assetPackerConfig, bundleBuildConfig); }; } } EGUI.EndGUIBackgroundColor(); } EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); }