private void DrawSpecialItem(TexImporterSetting.SpecialItem item, int index) { var hashCode = item.GetHashCode(); EditorGUILayout.BeginHorizontal("box"); showMap[hashCode] = EditorGUILayout.Foldout( showMap.GetValueOrDefault(hashCode), $"SpecialItem{index} [Content:{item.FilterContent}]", true ); if (GUILayout.Button("X", GUILayout.Width(20f))) { impSettings.SpecialItems.RemoveAt(index); } EditorGUILayout.EndHorizontal(); if (showMap[hashCode]) { EditorGUI.indentLevel++; EditorGUILayout.BeginVertical("box"); item.FilterContent = UTGUI.Text("Content", item.FilterContent); item.IgnoreCase = UTGUI.Toggle("IgnoreCase", item.IgnoreCase); item.FilterContentType = UTGUI.Enum("ContentType", item.FilterContentType); item.FilterMode = UTGUI.Enum("MatchMode", item.FilterMode); DrawSetting(item.Setting, true); EditorGUILayout.EndVertical(); EditorGUI.indentLevel--; } }
public override void OnInspectorGUI() { if (targets.Length == 1) { EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal("box"); impSettings.IncludeChild = UTGUI.Toggle( "Recursive", impSettings.IncludeChild ); EditorGUILayout.EndHorizontal(); DrawDefaultSetting(); GUILayout.Space(1f); DrawSpecialItems(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(impSettings); } GUILayout.BeginHorizontal(); if (EditorUtility.IsDirty(impSettings)) { if (GUILayout.Button("Save", GUILayout.Height(30f))) { AssetDatabase.SaveAssets(); } } DrawRefreshBtn(); GUILayout.EndHorizontal(); } else { DrawRefreshBtn(); } if (GUILayout.Button("FixAsset", GUILayout.Height(30f))) { foreach (var v in targets) { EditorUtility.SetDirty(v); } AssetDatabase.SaveAssets(); } }
private void OnGUI() { if (DrawWorking(guidMapGen)) { return; } findThingType = UTGUI.EnumToolbar(findThingType); EditorGUILayout.BeginVertical("box"); scrollerPos = EditorGUILayout.BeginScrollView(scrollerPos); switch (findThingType) { case FindThingType.Assets: DrawFindAssetView(); break; case FindThingType.CustomStr: DrawFindStrView(); break; case FindThingType.BuiltinComponent: DrawFindBuiltinComponentView(); break; } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.FlexibleSpace(); DrawOptionsView(); GUILayout.EndVertical(); }
private void OnGUI() { curTab = UTGUI.EnumToolbar(curTab); switch (curTab) { case Tab.All: drawHistory(position.height / 2); drawBookmark(); break; case Tab.Bookmark: drawBookmark(); break; case Tab.History: drawHistory(); break; } void drawHistory(float height = -1) { scrollPosHistory = height >= 0 ? EditorGUILayout.BeginScrollView(scrollPosHistory, false, false, GUILayout.Height(height)) : EditorGUILayout.BeginScrollView(scrollPosHistory, false, false); var removeCount = histories.RemoveAll(v => !v.asset); if (removeCount > 0) { saveHistories(); } for (var i = histories.Count - 1; i >= 0; i--) { var v = histories[i]; EditorGUILayout.ObjectField(v.asset, v.AssetType, false); GUILayout.Space(1.5f); } EditorGUILayout.EndScrollView(); } void drawBookmark(float height = -1) { EditorGUILayout.BeginVertical("box"); scrollPosBookmark = height >= 0 ? EditorGUILayout.BeginScrollView(scrollPosBookmark, false, false, GUILayout.Height(height)) : EditorGUILayout.BeginScrollView(scrollPosBookmark, false, false); for (var i = 0; i < bookmarks.Count; i++) { var v = bookmarks[i]; if (v.path.IsNOE()) { bookmarks.RemoveAt(i); saveBookmarks(); i--; continue; } drawPath(v, i); } EditorGUILayout.BeginVertical("box", GUILayout.Height(30f)); GUILayout.Space(10f); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Drag folder here to add bookmark"); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.Space(10f); EditorGUILayout.EndVertical(); var dragObjs = UTGUI.HandleDrag(); if (dragObjs != null && dragObjs.Length > 0) { foreach (var obj in dragObjs) { if (obj != null && obj is DefaultAsset) { var path = AssetDatabase.GetAssetPath(obj); if (!bookmarks.Exists(v => v.path == path)) { bookmarks.Add(new Bookmark(path)); saveBookmarks(); Repaint(); } } } } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); } void drawPath(Bookmark bookmark, int index) { GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.Space(4f); bookmark.path = EditorGUILayout.TextField(bookmark.path); GUILayout.EndVertical(); if (GUILayout.Button(bookmark.name)) { UToolsUtil.HighlightProjectPath(bookmark.path); } GUILayout.EndHorizontal(); var dragObjs = UTGUI.HandleDrag(DragAndDropVisualMode.Copy); if (dragObjs != null && dragObjs.Length > 0) { foreach (var obj in dragObjs) { if (obj.IsAsset()) { var assetPath = AssetDatabase.GetAssetPath(obj); var assetName = Path.GetFileName(assetPath); var newPath = Path.Combine(bookmark.path, assetName); if (newPath == assetPath) { return; } var error = AssetDatabase.MoveAsset(assetPath, newPath); if (error.IsNNOE()) { Debug.LogError(error); } } } } } }
private void drawTexFormatControl(TexFormatController control, int index) { GUILayout.BeginVertical(); { drawHeader(); if (showTexControlMap[index]) { GUILayout.BeginVertical("box"); EditorGUI.BeginChangeCheck(); { control.enable = EditorGUILayout.Toggle("Enable", control.enable); UTGUI.splitLine(); EditorGUI.BeginDisabledGroup(!control.enable); { drawCondition(); UTGUI.splitLine(); control.recursive = EditorGUILayout.Toggle("Recursive", control.recursive); drawPresetDisableGroup(); drawOtherTextureSetting(); checkPreset(control); EditorGUI.EndDisabledGroup(); } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(setting); } } GUILayout.EndVertical(); } GUILayout.EndVertical(); } void drawHeader() { GUILayout.BeginHorizontal("box"); string header = $"Preset:{control.preset}"; if (control.conditionMethod != ConditionMethod.None) { header = header + $", Condition:{control.conditionMethod}({control.conditionText})"; } showTexControlMap[index] = EditorGUILayout.Foldout(showTexControlMap[index], header, true); float width = 30f; using (new EditorGUI.DisabledScope(index <= 0)) { if (GUILayout.Button("↑", GUILayout.Width(width))) { var temp = setting.texFormatControllers[index - 1]; setting.texFormatControllers[index - 1] = control; setting.texFormatControllers[index] = temp; EditorUtility.SetDirty(setting); } } using (new EditorGUI.DisabledScope(index >= setting.texFormatControllers.Count - 1)) { if (GUILayout.Button("↓", GUILayout.Width(width))) { var temp = setting.texFormatControllers[index + 1]; setting.texFormatControllers[index + 1] = control; setting.texFormatControllers[index] = temp; EditorUtility.SetDirty(setting); } } if (GUILayout.Button("X", GUILayout.Width(width))) { willRemoveTexControl = index; } GUILayout.EndHorizontal(); } void drawCondition() { control.conditionMethod = UTGUI.Enum("Condition", control.conditionMethod); if (control.conditionMethod != ConditionMethod.None) { control.conditionContent = UTGUI.Enum("ContentType", control.conditionContent); control.conditionText = UTGUI.Text("ContentText", control.conditionText); control.ignoreCase = UTGUI.Toggle("IgnoreCase", control.ignoreCase); } } void drawPresetDisableGroup() { control.preset = UTGUI.Enum("Preset: ", control.preset); // preset disable group var haspreset = control.preset != PresetSettings.None; EditorGUI.BeginDisabledGroup(haspreset); { control.textureType = UTGUI.Enum("TexType: ", control.textureType); if (control.textureType == TextureImporterType.Default) { control.textureShape = UTGUI.Enum("TexShape: ", control.textureShape); } control.mipMapEnable = EditorGUILayout.Toggle("MipMap?", control.mipMapEnable); control.wrapMode = UTGUI.Enum("Wrap", control.wrapMode); if (control.alphaMode != AlphaMode.Auto) { control.overrideAndroidFormat = UTGUI.Enum("Android", control.overrideAndroidFormat); control.overrideIOSFormat = UTGUI.Enum("IOS", control.overrideIOSFormat); control.overridePCFormat = UTGUI.Enum("PC", control.overridePCFormat); } EditorGUI.EndDisabledGroup(); } } void drawOtherTextureSetting() { // sprite EditorGUI.BeginDisabledGroup(control.textureType != TextureImporterType.Sprite); { control.atlasMode = UTGUI.Enum("AtlasMode: ", control.atlasMode); if (control.atlasMode == AtlasMode.Custom) { control.packingTag = UTGUI.Text("Atlas: ", control.packingTag); } EditorGUI.EndDisabledGroup(); } control.readWriteEnable = EditorGUILayout.Toggle("Readable?", control.readWriteEnable); control.filterMode = UTGUI.Enum("Filter", control.filterMode); control.maxSize = UTGUI.Int("MaxSize", control.maxSize); control.alphaMode = UTGUI.Enum("AlphaMode", control.alphaMode); control.nPOTScale = UTGUI.Enum("NPOT", control.nPOTScale); } }
private void DrawSetting( TexImporterSetting.Settings setting, bool foldout, string header = "Settings" ) { if (foldout) { showMap[setting.GetHashCode()] = EditorGUILayout.Foldout( showMap.GetValueOrDefault(setting.GetHashCode()), header, true ); } if (!foldout || showMap[setting.GetHashCode()]) { EditorGUI.indentLevel++; EditorGUILayout.BeginVertical("box"); setting.PresetSetting = UTGUI.Enum("Preset: ", setting.PresetSetting); var haspreset = setting.PresetSetting != PresetSettings.None; EditorGUI.BeginDisabledGroup(haspreset); setting.TextureType = UTGUI.Enum("TexType: ", setting.TextureType); if (setting.TextureType == TextureImporterType.Default) { setting.TextureShape = UTGUI.Enum("TexShape: ", setting.TextureShape); } // setting.AlphaIsTransparency = MaidEditorGUI.Toggle( // "Alpha Is Transparency?", // setting.AlphaIsTransparency // ); setting.MipMapEnable = UTGUI.Toggle( "MipMap?", setting.MipMapEnable ); setting.WrapMode = UTGUI.Enum("Wrap", setting.WrapMode); if (setting.AlphaMode != AlphaMode.Auto) { setting.OverrideAndroidFormat = UTGUI.Enum( "Android", setting.OverrideAndroidFormat ); setting.OverrideIOSFormat = UTGUI.Enum( "IOS", setting.OverrideIOSFormat ); setting.OverridePCFormat = UTGUI.Enum( "PC", setting.OverridePCFormat ); } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); EditorGUI.BeginDisabledGroup(setting.TextureType != TextureImporterType.Sprite); setting.AtlasMode = UTGUI.Enum("AtlasMode: ", setting.AtlasMode); if (setting.AtlasMode == AtlasMode.Custom) { setting.PackingTag = UTGUI.Text("Atlas: ", setting.PackingTag); } EditorGUI.EndDisabledGroup(); setting.ReadWriteEnable = UTGUI.Toggle( "Readable?", setting.ReadWriteEnable ); // setting.SRGB = MaidEditorGUI.Toggle( // "sRGB?", // setting.SRGB // ); setting.FilterMode = UTGUI.Enum("Filter", setting.FilterMode); setting.MaxSize = UTGUI.Int("MaxSize", setting.MaxSize); setting.AlphaMode = UTGUI.Enum("AlphaMode", setting.AlphaMode); setting.NPOTScale = UTGUI.Enum("NPOT", setting.NPOTScale); // setting.Quality = MaidEditorGUI.Enum("Quality", setting.Quality); EditorGUILayout.EndVertical(); EditorGUI.indentLevel--; CheckPreset(setting); } }
private void DrawFindAssetView() { if (DrawWorking(assetRefFinder)) { return; } EditorGUILayout.BeginHorizontal(); findAssetMode = UTGUI.EnumToolbar(findAssetMode); if (findAssetMode == FindAssetsMode.Field) { whenShouldFind = WhenShouldFind.ClickFind; } EditorGUI.BeginDisabledGroup(findAssetMode == FindAssetsMode.Field); whenShouldFind = UTGUI.EnumToolbar(whenShouldFind); EditorGUI.EndDisabledGroup(); EditorGUILayout.EndHorizontal(); // this.findAssetFrom = MaidEditorGUI.EnumToolbar<FindAssetFrom>(0x1004); var objType = ReferenceToolUtil.type_object; if (curFindAsset && !(curFindAsset is DefaultAsset)) { objType = curFindAsset.GetType(); } if (findAssetMode == FindAssetsMode.Field) { curFindAsset = EditorGUILayout.ObjectField( "FindTarget:", curFindAsset, objType, false ); } else { EditorGUI.BeginDisabledGroup(true); EditorGUILayout.ObjectField("FindTarget:", curFindAsset, objType, false); EditorGUI.EndDisabledGroup(); } if (enableReplace) { EditorGUILayout.BeginHorizontal(); replaceTargetAsset = EditorGUILayout.ObjectField( "ReplaceTarget:", replaceTargetAsset, objType, false ); EditorGUILayout.EndHorizontal(); } if (curFindAsset is GameObject) { enableReplace = false; } else { enableReplace = EditorGUILayout.ToggleLeft( "EnableReplace", enableReplace, GUILayout.Width(100f) ); } if (GUILayout.Button("Find")) { DoFindAssets(); } DrawResultView(assetRefFinder); }