> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.unity.editor/ks.unity.editor.ksoverrideeditor.md).

# Class ksOverrideEditor

Namespace: [KS.Unity.Editor](/reactor/api-reference/ks.unity.editor.md)\
Assembly: KSUnity-Editor.dll

Base class that enables Reactor to define new editors which extend or override the rendering of Unity inspector editors.

```csharp
public class ksOverrideEditor : Editor
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← Object ← ScriptableObject ← Editor ← [ksOverrideEditor](/reactor/api-reference/ks.unity.editor/ks.unity.editor.ksoverrideeditor.md)

#### Derived

[ksCharacterControllerEditor](/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.kscharactercontrollereditor.md), [ksColliderEditor](/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.kscollidereditor.md), [ksRigidBodyEditor](/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.ksrigidbodyeditor.md)

#### Inherited Members

Editor.SaveChanges(), Editor.DiscardChanges(), Editor.CreateEditorWithContext(Object\[], Object, Type), Editor.CreateEditorWithContext(Object\[], Object), Editor.CreateCachedEditorWithContext(Object, Object, Type, ref Editor), Editor.CreateCachedEditorWithContext(Object\[], Object, Type, ref Editor), Editor.CreateCachedEditor(Object, Type, ref Editor), Editor.CreateCachedEditor(Object\[], Type, ref Editor), Editor.CreateEditor(Object), Editor.CreateEditor(Object, Type), Editor.CreateEditor(Object\[]), Editor.CreateEditor(Object\[], Type), Editor.DrawPropertiesExcluding(SerializedObject, params string\[]), Editor.DrawDefaultInspector(), Editor.Repaint(), Editor.OnInspectorGUI(), Editor.CreateInspectorGUI(), Editor.RequiresConstantRepaint(), Editor.DrawHeader(), Editor.OnHeaderGUI(), Editor.ShouldHideOpenButton(), Editor.DrawFoldoutInspector(Object, ref Editor), Editor.HasPreviewGUI(), Editor.GetPreviewTitle(), Editor.RenderStaticPreview(string, Object\[], int, int), Editor.OnPreviewGUI(Rect, GUIStyle), Editor.OnInteractivePreviewGUI(Rect, GUIStyle), Editor.OnPreviewSettings(), Editor.GetInfoString(), Editor.DrawPreview(Rect), Editor.ReloadPreviewInstances(), Editor.UseDefaultMargins(), Editor.MoveNextTarget(), Editor.ResetTarget(), Editor.hasUnsavedChanges, Editor.saveChangesMessage, Editor.target, Editor.targets, Editor.serializedObject, Editor.finishedDefaultHeaderGUI, ScriptableObject.SetDirty(), ScriptableObject.CreateInstance(string), ScriptableObject.CreateInstance(Type), ScriptableObject.CreateInstance\<T>(), Object.GetInstanceID(), Object.GetHashCode(), Object.Equals(object), Object.Instantiate(Object, Vector3, Quaternion), Object.Instantiate(Object, Vector3, Quaternion, Transform), Object.Instantiate(Object), Object.Instantiate(Object, Transform), Object.Instantiate(Object, Transform, bool), Object.Instantiate\<T>(T), Object.Instantiate\<T>(T, Vector3, Quaternion), Object.Instantiate\<T>(T, Vector3, Quaternion, Transform), Object.Instantiate\<T>(T, Transform), Object.Instantiate\<T>(T, Transform, bool), Object.Destroy(Object, float), Object.Destroy(Object), Object.DestroyImmediate(Object, bool), Object.DestroyImmediate(Object), Object.FindObjectsOfType(Type), Object.FindObjectsOfType(Type, bool), Object.FindObjectsByType(Type, FindObjectsSortMode), Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode), Object.DontDestroyOnLoad(Object), Object.DestroyObject(Object, float), Object.DestroyObject(Object), Object.FindSceneObjectsOfType(Type), Object.FindObjectsOfTypeIncludingAssets(Type), Object.FindObjectsOfType\<T>(), Object.FindObjectsByType\<T>(FindObjectsSortMode), Object.FindObjectsOfType\<T>(bool), Object.FindObjectsByType\<T>(FindObjectsInactive, FindObjectsSortMode), Object.FindObjectOfType\<T>(), Object.FindObjectOfType\<T>(bool), Object.FindFirstObjectByType\<T>(), Object.FindAnyObjectByType\<T>(), Object.FindFirstObjectByType\<T>(FindObjectsInactive), Object.FindAnyObjectByType\<T>(FindObjectsInactive), Object.FindObjectsOfTypeAll(Type), Object.FindObjectOfType(Type), Object.FindFirstObjectByType(Type), Object.FindAnyObjectByType(Type), Object.FindObjectOfType(Type, bool), Object.FindFirstObjectByType(Type, FindObjectsInactive), Object.FindAnyObjectByType(Type, FindObjectsInactive), Object.ToString(), Object.name, Object.hideFlags, [object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Fields

### m\_baseEditor <a href="#ks_unity_editor_ksoverrideeditor_m_baseeditor" id="ks_unity_editor_ksoverrideeditor_m_baseeditor"></a>

```csharp
[NonSerialized]
protected Editor m_baseEditor
```

#### Field Value

Editor

### m\_roOnDestroy <a href="#ks_unity_editor_ksoverrideeditor_m_roondestroy" id="ks_unity_editor_ksoverrideeditor_m_roondestroy"></a>

```csharp
protected ksReflectionObject m_roOnDestroy
```

#### Field Value

[ksReflectionObject](/reactor/api-reference/ks.unity.editor/ks.unity.editor.ksreflectionobject.md)

### m\_roOnEnable <a href="#ks_unity_editor_ksoverrideeditor_m_roonenable" id="ks_unity_editor_ksoverrideeditor_m_roonenable"></a>

```csharp
protected ksReflectionObject m_roOnEnable
```

#### Field Value

[ksReflectionObject](/reactor/api-reference/ks.unity.editor/ks.unity.editor.ksreflectionobject.md)

### m\_roOnHeaderGUI <a href="#ks_unity_editor_ksoverrideeditor_m_roonheadergui" id="ks_unity_editor_ksoverrideeditor_m_roonheadergui"></a>

```csharp
protected ksReflectionObject m_roOnHeaderGUI
```

#### Field Value

[ksReflectionObject](/reactor/api-reference/ks.unity.editor/ks.unity.editor.ksreflectionobject.md)

### m\_roOnPreSceneGUI <a href="#ks_unity_editor_ksoverrideeditor_m_roonprescenegui" id="ks_unity_editor_ksoverrideeditor_m_roonprescenegui"></a>

```csharp
protected ksReflectionObject m_roOnPreSceneGUI
```

#### Field Value

[ksReflectionObject](/reactor/api-reference/ks.unity.editor/ks.unity.editor.ksreflectionobject.md)

### m\_roOnSceneGUI <a href="#ks_unity_editor_ksoverrideeditor_m_roonscenegui" id="ks_unity_editor_ksoverrideeditor_m_roonscenegui"></a>

```csharp
protected ksReflectionObject m_roOnSceneGUI
```

#### Field Value

[ksReflectionObject](/reactor/api-reference/ks.unity.editor/ks.unity.editor.ksreflectionobject.md)

## Properties

### BaseEditor <a href="#ks_unity_editor_ksoverrideeditor_baseeditor" id="ks_unity_editor_ksoverrideeditor_baseeditor"></a>

Base editor we're overriding.

```csharp
public Editor BaseEditor { get; }
```

#### Property Value

Editor

### ReflectionEditor <a href="#ks_unity_editor_ksoverrideeditor_reflectioneditor" id="ks_unity_editor_ksoverrideeditor_reflectioneditor"></a>

Base editor reflection object.

```csharp
public ksReflectionObject ReflectionEditor { get; }
```

#### Property Value

[ksReflectionObject](/reactor/api-reference/ks.unity.editor/ks.unity.editor.ksreflectionobject.md)

## Methods

### DrawPreview(Rect) <a href="#ks_unity_editor_ksoverrideeditor_drawpreview_unityengine_rect" id="ks_unity_editor_ksoverrideeditor_drawpreview_unityengine_rect"></a>

Calls the base editor's DrawPreview.

```csharp
public override void DrawPreview(Rect previewArea)
```

#### Parameters

`previewArea` Rect

### GetInfoString() <a href="#ks_unity_editor_ksoverrideeditor_getinfostring" id="ks_unity_editor_ksoverrideeditor_getinfostring"></a>

Calls the base editor's GetInfoString.

```csharp
public override string GetInfoString()
```

#### Returns

[string](https://learn.microsoft.com/dotnet/api/system.string)

### GetPreviewTitle() <a href="#ks_unity_editor_ksoverrideeditor_getpreviewtitle" id="ks_unity_editor_ksoverrideeditor_getpreviewtitle"></a>

Calls the base editor's GetPreviewTitle.

```csharp
public override GUIContent GetPreviewTitle()
```

#### Returns

GUIContent

### HasPreviewGUI() <a href="#ks_unity_editor_ksoverrideeditor_haspreviewgui" id="ks_unity_editor_ksoverrideeditor_haspreviewgui"></a>

Calls the base editor's HasPreviewGUI.

```csharp
public override bool HasPreviewGUI()
```

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### LoadBaseEditor(string, string) <a href="#ks_unity_editor_ksoverrideeditor_loadbaseeditor_system_string_system_string" id="ks_unity_editor_ksoverrideeditor_loadbaseeditor_system_string_system_string"></a>

Loads a Unity editor class via reflection to be the base editor. Does nothing if the base editor is already set.

```csharp
protected void LoadBaseEditor(string className, string assemblyName = "UnityEditor")
```

#### Parameters

`className` [string](https://learn.microsoft.com/dotnet/api/system.string)

`assemblyName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Name of assembly to load from.

### OnDestroy() <a href="#ks_unity_editor_ksoverrideeditor_ondestroy" id="ks_unity_editor_ksoverrideeditor_ondestroy"></a>

Unity OnDestroy.

```csharp
protected virtual void OnDestroy()
```

### OnDisable() <a href="#ks_unity_editor_ksoverrideeditor_ondisable" id="ks_unity_editor_ksoverrideeditor_ondisable"></a>

Destroy the base editor when we are destroyed.

```csharp
protected virtual void OnDisable()
```

### OnEnable() <a href="#ks_unity_editor_ksoverrideeditor_onenable" id="ks_unity_editor_ksoverrideeditor_onenable"></a>

Unity OnEnable.

```csharp
protected virtual void OnEnable()
```

### OnHeaderGUI() <a href="#ks_unity_editor_ksoverrideeditor_onheadergui" id="ks_unity_editor_ksoverrideeditor_onheadergui"></a>

Calls the base editor's OnHeaderGUI.

```csharp
protected override void OnHeaderGUI()
```

### OnInspectorGUI() <a href="#ks_unity_editor_ksoverrideeditor_oninspectorgui" id="ks_unity_editor_ksoverrideeditor_oninspectorgui"></a>

Calls the base editor's OnInspectorGUI.

```csharp
public override void OnInspectorGUI()
```

### OnInteractivePreviewGUI(Rect, GUIStyle) <a href="#ks_unity_editor_ksoverrideeditor_oninteractivepreviewgui_unityengine_rect_unityengine_guistyle" id="ks_unity_editor_ksoverrideeditor_oninteractivepreviewgui_unityengine_rect_unityengine_guistyle"></a>

Calls the base editor's OnInteractivePreviewGUI.

```csharp
public override void OnInteractivePreviewGUI(Rect r, GUIStyle background)
```

#### Parameters

`r` Rect

`background` GUIStyle

### OnPreSceneGUI() <a href="#ks_unity_editor_ksoverrideeditor_onprescenegui" id="ks_unity_editor_ksoverrideeditor_onprescenegui"></a>

Calls the base editor's OnPreSceneGUI.

```csharp
protected virtual void OnPreSceneGUI()
```

### OnPreviewGUI(Rect, GUIStyle) <a href="#ks_unity_editor_ksoverrideeditor_onpreviewgui_unityengine_rect_unityengine_guistyle" id="ks_unity_editor_ksoverrideeditor_onpreviewgui_unityengine_rect_unityengine_guistyle"></a>

Calls the base editor's OnPreviewGUI.

```csharp
public override void OnPreviewGUI(Rect r, GUIStyle background)
```

#### Parameters

`r` Rect

`background` GUIStyle

### OnPreviewSettings() <a href="#ks_unity_editor_ksoverrideeditor_onpreviewsettings" id="ks_unity_editor_ksoverrideeditor_onpreviewsettings"></a>

Calls the base editor's OnPreviewSettings.

```csharp
public override void OnPreviewSettings()
```

### OnSceneGUI() <a href="#ks_unity_editor_ksoverrideeditor_onscenegui" id="ks_unity_editor_ksoverrideeditor_onscenegui"></a>

Calls the base editor's OnSceneGUI.

```csharp
protected virtual void OnSceneGUI()
```

### RenderStaticPreview(string, Object\[], int, int) <a href="#ks_unity_editor_ksoverrideeditor_renderstaticpreview_system_string_unityengine_object___system_int32" id="ks_unity_editor_ksoverrideeditor_renderstaticpreview_system_string_unityengine_object___system_int32"></a>

Calls the base editor's RenderStaticPreview.

```csharp
public override Texture2D RenderStaticPreview(string assetPath, Object[] subAssets, int width, int height)
```

#### Parameters

`assetPath` [string](https://learn.microsoft.com/dotnet/api/system.string)

`subAssets` Object\[]

`width` [int](https://learn.microsoft.com/dotnet/api/system.int32)

`height` [int](https://learn.microsoft.com/dotnet/api/system.int32)

#### Returns

Texture2D

### RequiresConstantRepaint() <a href="#ks_unity_editor_ksoverrideeditor_requiresconstantrepaint" id="ks_unity_editor_ksoverrideeditor_requiresconstantrepaint"></a>

Calls the base editor's RequiresConstantRepaint.

```csharp
public override bool RequiresConstantRepaint()
```

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### UseDefaultMargins() <a href="#ks_unity_editor_ksoverrideeditor_usedefaultmargins" id="ks_unity_editor_ksoverrideeditor_usedefaultmargins"></a>

Calls the base editor's UseDefaultMargins.

```csharp
public override bool UseDefaultMargins()
```

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)
