//======================================================= // method //======================================================= internal string GetAssetLabel(string path, string extension, string buildPath, string guid) { for (int i = 0; i < LabelSetting.Count; i++) { if (LabelSetting[i].CheckLabel(buildPath)) { return(LabelSetting[i].AssetBundleName); } } switch (DefaultLabelType) { case AssetBundleLabelType.FileName: return(Path.GetFileNameWithoutExtension(path).ToLower()); case AssetBundleLabelType.RelativePath: return(string.IsNullOrEmpty(extension) ? buildPath.ToLower() : buildPath.ToLower().Replace(extension, "")); case AssetBundleLabelType.GuidFileName: return(guid); case AssetBundleLabelType.GuidRelativePath: return(FileHelper.pathSlashFix(Path.Combine(Path.GetDirectoryName(buildPath).ToLower(), guid))); } return(null); }
private static List <EditorAssetInfo> buildTreeViewItemRecursive(DirectoryInfo dirInfo, EditorAssetInfo parent, int depth) { var items = new List <EditorAssetInfo>(); var item = getTreeViewItem(FileHelper.SystemPathToAssetPath(dirInfo.FullName), depth); item.Initialize(FileHelper.SystemPathToAssetPath(dirInfo.FullName)); if (depth != -1) { items.Add(item); } var fileInfos = dirInfo.GetFiles("*.*").ToList(); fileInfos.RemoveAll(f => Path.GetExtension(f.Name).Equals(".meta")); for (int i = 0; i < fileInfos.Count; i++) { var assetPath = FileHelper.SystemPathToAssetPath(fileInfos[i].FullName); var child = getTreeViewItem(assetPath, depth + 1); child.Initialize(assetPath); items.Add(child); } //myRoot.children = items; foreach (DirectoryInfo di in dirInfo.GetDirectories()) { items.AddRange(buildTreeViewItemRecursive(di, item, depth + 1)); } return(items); }
private void LabelSettingDrawer(DirectoryLabelSetting setting) { var rect = EditorGUILayout.BeginVertical(GUIHelper.Styles.NoSpaceBox); { GUI.backgroundColor = setting.IsActive ? Color.green : Color.grey; if (GUILayout.Button("", EditorStyles.toolbarButton, GUILayout.ExpandWidth(true))) { UndoHelper.BuilderDataUndo("Change DirectoryLabel activation"); setting.IsActive = !setting.IsActive; EditorGUIUtility.keyboardControl = 0; } GUI.backgroundColor = Color.white; EditorGUILayout.BeginHorizontal(); { Undo.IncrementCurrentGroup(); UndoHelper.BuilderDataUndo("Change DirectoryLabel Setting"); GUILayout.Label("Directory", GUILayout.Width(70)); setting.DirectoryName = EditorGUILayout.TextField(setting.DirectoryName); var path = FileHelper.GetDraggedObject(Event.current, GUILayoutUtility.GetLastRect()); if (!string.IsNullOrEmpty(path)) { setting.DirectoryName = FileHelper.AssetPathToBuildPath(BuildRootPath, path); } } EditorGUILayout.EndHorizontal(); if (setting.IsActive) { EditorGUILayout.BeginHorizontal(); { Undo.IncrementCurrentGroup(); UndoHelper.BuilderDataUndo("Change DirectoryLabel Setting"); GUILayout.Label("Label", GUILayout.Width(70)); setting.AssetBundleName = EditorGUILayout.TextField(setting.AssetBundleName); } EditorGUILayout.EndHorizontal(); setting.Type = ( DirectoryLabelNameType )EditorGUILayout.EnumPopup(setting.Type); GUILayout.Space(5); } } EditorGUILayout.EndVertical(); GUILayout.Space(3); if (IsContextClick(Event.current, rect)) { var menu = new GenericMenu(); menu.AddItem(new GUIContent("Delete"), false, () => { UndoHelper.BuilderDataUndo("Delete DirectoryLabel Setting"); LabelSetting.Remove(setting); }); menu.ShowAsContext(); } }
internal static void Initialize(Rect win) { HorizontalStateMain = new SplitterState(new float[] { win.width * 0.3f, win.width * 0.7f }, new int[] { 300, 300 }, new int[] { 400, 1000 }); HorizontalStateSub = new SplitterState(new float[] { win.width * 0.20f, win.width * 0.80f }, new int[] { 250, 250 }, new int[] { 500, 1000 }); Data = FileHelper.LoadAssetBundleConfigs(); }
public string GetAssetLabel(EditorAssetInfo asset, string buildRootPath) { var buildPath = FileHelper.AssetPathToBuildPath(buildRootPath, asset.AssetPath); if (string.IsNullOrEmpty(buildPath)) { return(null); } return(AssetLabelConfig.GetAssetLabel(asset.AssetPath, asset.Extension, buildPath, asset.Guid)); }
public bool CheckFileAvailable(EditorAssetInfo asset, string buildRootPath) { var buildPath = FileHelper.AssetPathToBuildPath(buildRootPath, asset.AssetPath); if (string.IsNullOrEmpty(buildPath)) { return(false); } return(AssetLabelConfig.CheckFileAvailable(asset.AssetPath, asset.Name, asset.Extension, buildPath)); }
public bool CheckDirectoryLabel(EditorAssetInfo asset, string buildRootPath) { var buildPath = FileHelper.AssetPathToBuildPath(buildRootPath, asset.AssetPath); if (string.IsNullOrEmpty(buildPath)) { return(false); } return(AssetLabelConfig.CheckDirectoryLabel(asset.AssetPath, buildPath)); }
private static DirectoryInfo getAssetBundleDirectoryInfo(string assetPath) { idCounter = 0; var path = FileHelper.AssetPathToSystemPath(assetPath); if (!Directory.Exists(path)) { Debug.LogError("not found: " + path); return(null); } return(new DirectoryInfo(path)); }
public string GetAssetBundleListSavePath(string fileName) { return(FileHelper.pathSlashFix(Path.Combine(AssetBundleListConfig.AssetBundleListTextPath, fileName))); }
internal void Drawer() { GUILayout.Space(10); EditorGUILayout.BeginVertical(); { if (GUILayout.Button(new GUIContent(ScriptName.ToBold(), GUIHelper.Textures.ScriptIcon), GUILayout.Height(20))) { FileHelper.OpenInEditor(ScriptName); } } EditorGUILayout.EndVertical(); GUILayout.Space(5); EditorGUILayout.BeginVertical(EditorStyles.helpBox); { GUILayout.Space(3); EditorGUILayout.BeginHorizontal(); { var fold = EditorGUILayout.Foldout(Fold, "Basic Setting"); if (fold != Fold) { EditorGUIUtility.keyboardControl = 0; UndoHelper.BuilderDataUndo("Change fold"); } Fold = fold; GUILayout.FlexibleSpace(); if (GUILayout.Button(IsConfigAvailable ? GUIHelper.Textures.ConfigAvailable : GUIHelper.Textures.ConfigInvalid, GUIStyle.none, new GUILayoutOption[] { GUILayout.Width(20), GUILayout.Height(20) })) { CheckConfig(); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { GUILayout.Space(17); EditorGUILayout.BeginVertical(); { if (Fold) { Undo.IncrementCurrentGroup(); UndoHelper.BuilderDataUndo("Change BuildRootPath"); using (new GUIHelper.Scope.DropSettingTextAreaInProject(new GUIContent("★Root Path of Build AssetBundle", "This use for naming assetbundles"), ref AssetBundleBuildRootPath)) { }; AssetLabelConfig.BuildRootPath = AssetBundleBuildRootPath; GUILayout.Space(3); Undo.IncrementCurrentGroup(); UndoHelper.BuilderDataUndo("Change BuildOption"); GUILayout.Label(new GUIContent("★AssetBundle Build Options", "AssetBundle BuildOption")); Options = ( BuildAssetBundleOptions )EditorGUILayout.EnumFlagsField(Options); GUILayout.Space(3); Undo.IncrementCurrentGroup(); UndoHelper.BuilderDataUndo("Change BuildPlatform"); GUILayout.Label(new GUIContent("★Build Platform", "Build AssetBundle for selected platform.")); Platform = EditorGUILayout.MaskField(Platform, BuildTargetUtility.GetBuildModulesMenu()); } GUILayout.Space(2); } EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); GUILayout.Space(5); } EditorGUILayout.EndVertical(); ExportConfig.OnGUI(); AssetBundleListConfig.OnGUI(); UploadConfig.OnGUI(); GUILayout.FlexibleSpace(); }
public override void OnGUI(Rect rect) { GUI.skin.label.richText = true; GUILayout.Space(5); if (BuilderDataEditorUtility.BuilderDataMenu.Length > 0) { EditorGUILayout.BeginVertical(EditorStyles.helpBox); { GUILayout.Label(new GUIContent("Create New BuilderData".ToBold(), GUIHelper.Textures.ScriptableObjectIcon), GUILayout.Height(20)); Undo.IncrementCurrentGroup(); UndoHelper.PopupWindowUndo(editorWindow, "Edit BuilderData name"); newBuilderDataName = EditorGUILayout.TextField(newBuilderDataName); var selected = EditorGUILayout.Popup(selectedType, BuilderDataEditorUtility.BuilderDataMenu); if (selectedType != selected) { UndoHelper.PopupWindowUndo(editorWindow, "Change selected script"); EditorGUIUtility.keyboardControl = 0; selectedType = selected; } GUILayout.Space(3); if (GUILayout.Button("Create")) { FileHelper.CreateNewAssetBundleBuildConfig(BuilderDataEditorUtility.BuilderDataType[selectedType], BuilderDataEditorUtility.BuilderDataMenu[selectedType], newBuilderDataName); EasyAssetBundleWindow.Initialize(); this.editorWindow.Close(); } } EditorGUILayout.EndVertical(); } else { selectedType = 0; EditorGUILayout.HelpBox("There is no BuilderScript.", MessageType.Warning); } GUILayout.Space(5); EditorGUILayout.BeginVertical(EditorStyles.helpBox); { GUILayout.Label(new GUIContent("Create New BuilderScript".ToBold(), GUIHelper.Textures.ScriptIcon), GUILayout.Height(20)); Undo.IncrementCurrentGroup(); UndoHelper.PopupWindowUndo(editorWindow, "Edit BuilderScript name"); newBuilderScriptName = EditorGUILayout.TextField(newBuilderScriptName); GUILayout.Space(3); if (GUILayout.Button("Create")) { FileHelper.CreateNewBuilderScript(newBuilderScriptName); this.editorWindow.Close(); } } EditorGUILayout.EndVertical(); GUI.skin.label.richText = false; }