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--; } }
private void DrawSpecialItems() { showSpecials = EditorGUILayout.BeginFoldoutHeaderGroup(showSpecials, "Special Items"); EditorGUI.indentLevel++; if (showSpecials) { EditorGUILayout.BeginVertical("box"); if (impSettings.SpecialItems == null) { impSettings.SpecialItems = new List <TexImporterSetting.SpecialItem>(); } for (var i = 0; i < impSettings.SpecialItems.Count; i++) { var specialItem = impSettings.SpecialItems[i]; DrawSpecialItem(specialItem, i); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Add")) { var newSpecialItem = new TexImporterSetting.SpecialItem(); impSettings.SpecialItems.Add(newSpecialItem); } if (GUILayout.Button("Clear")) { impSettings.SpecialItems.Clear(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } EditorGUI.indentLevel--; EditorGUILayout.EndFoldoutHeaderGroup(); }
internal static bool CheckSpecialItemMatch( TexImporterSetting.SpecialItem specialItem, string importerName ) { var filterContent = specialItem.FilterContent; if (filterContent.IsNOE()) { return(false); } if (specialItem.IgnoreCase) { filterContent = specialItem.FilterContent.ToLower(); importerName = importerName.ToLower(); } switch (specialItem.FilterMode) { case ConditionMethod.Regex: return(Regex.IsMatch( importerName, filterContent )); case ConditionMethod.Contain: return(importerName.Contains(filterContent)); case ConditionMethod.Equals: return(importerName.Equals(filterContent)); case ConditionMethod.StartWith: return(importerName.StartsWith(filterContent)); case ConditionMethod.EndWith: return(importerName.EndsWith(filterContent)); } return(false); }