static void Menu() { if (isLoaded == false) { initialLoadExtensionState(); isLoaded = true; } EditorGUI.BeginChangeCheck(); changedStateList.Clear(); foreach (var pair in extensionToState) { var retValue = EditorGUILayout.Toggle( pair.Key.ToString(), pair.Value == ExtensionState.Work ); var stateInt = (retValue) ? 1 : 0; changedStateList.Add(pair.Key, (ExtensionState)stateInt); } foreach (var changedState in changedStateList) { extensionToState[changedState.Key] = changedState.Value; } if (EditorGUI.EndChangeCheck()) { saveExtensionState(); HierarchyIconExtensionList.UpdateWorkingExtensions(); } }
static MissingScriptIconExtension() { HierarchyIconExtensionList.AddExtension(new MissingScriptIconExtension()); iconTexture = AssetDatabase.LoadAssetAtPath( "Assets/HierarchyIconExtension/Editor/HierarchyIconExtension/Feature/Alice.png", typeof(Texture2D) ) as Texture2D; }
static OverridePrefabIconExtension() { HierarchyIconExtensionList.AddExtension(new OverridePrefabIconExtension()); iconTexture = AssetDatabase.LoadAssetAtPath( "Assets/HierarchyIconExtension/Editor/HierarchyIconExtension/Feature/Bob.png", typeof(Texture2D) ) as Texture2D; EditorApplication.hierarchyWindowChanged += resetSerializedObject; }
private static void initialLoadExtensionState() { extensionToState.Clear(); foreach (var extension in HierarchyIconExtensionList.GetAllExtensions()) { var extensionName = extension.GetType().ToString(); var stateString = EditorUserSettings.GetConfigValue(extensionName) ?? ((int)ExtensionState.Idle).ToString(); var state = (ExtensionState)int.Parse(stateString); extensionToState.Add(extensionName, state); } }