protected virtual void RefreshOverride() { if (!EditorPrefs.HasKey(KoreInspectorSettings.GetPrefsKey(this.GetType()))) { overrideDefault = true; } else { overrideDefault = EditorPrefs.GetBool(KoreInspectorSettings.GetPrefsKey(this.GetType())); } this.Repaint(); }
void OnGUI() { for (int i = 0; i < s_KoreInspectorSubTypes.Count; i++) { EditorGUI.BeginChangeCheck(); s_InpsectorOverrides[i] = EditorGUILayout.ToggleLeft(ToTitleCase(s_KoreInspectorSubTypes[i].Name), s_InpsectorOverrides[i]); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(this, "Changed override"); EditorPrefs.SetBool(KoreInspectorSettings.GetPrefsKey(s_KoreInspectorSubTypes[i]), s_InpsectorOverrides[i]); onInspectorOverrideChanged(); } } }
/// <summary> /// Find all types of kore inspectors from assembly /// </summary> private static void FindAllKoreInspectors() { Type koreInspectorType = typeof(KoreInspectorBase); Type[] allTypes = koreInspectorType.Assembly.GetTypes(); s_KoreInspectorSubTypes.Clear(); for (int i = 0; i < allTypes.Length; i++) { if (allTypes[i].IsSubclassOf(koreInspectorType) && !allTypes[i].IsAbstract) { s_KoreInspectorSubTypes.Add(allTypes[i]); } } // Find overridden inspectors from editor preferences s_InpsectorOverrides = new bool[s_KoreInspectorSubTypes.Count]; for (int i = 0; i < s_KoreInspectorSubTypes.Count; i++) { s_InpsectorOverrides[i] = EditorPrefs.GetBool(KoreInspectorSettings.GetPrefsKey(s_KoreInspectorSubTypes[i])); } }