> 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.reactor.client.unity.editor/ks.reactor.client.unity.editor.ksreactorconfigeditor.md).

# Class ksReactorConfigEditor

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

Inspector editor for [ksReactorConfig](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksreactorconfig.md).

```csharp
[CustomEditor(typeof(ksReactorConfig), false)]
public class ksReactorConfigEditor : Editor, IPreprocessBuildWithReport, IPostprocessBuildWithReport, IOrderedCallback
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† Object â† ScriptableObject â† Editor â† [ksReactorConfigEditor](/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.ksreactorconfigeditor.md)

#### Implements

IPreprocessBuildWithReport, IPostprocessBuildWithReport, IOrderedCallback

#### 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)

## Constructors

### ksReactorConfigEditor() <a href="#ks_reactor_client_unity_editor_ksreactorconfigeditor__ctor" id="ks_reactor_client_unity_editor_ksreactorconfigeditor__ctor"></a>

```csharp
public ksReactorConfigEditor()
```

## Properties

### callbackOrder <a href="#ks_reactor_client_unity_editor_ksreactorconfigeditor_callbackorder" id="ks_reactor_client_unity_editor_ksreactorconfigeditor_callbackorder"></a>

Post/Pre build callback order.

```csharp
public int callbackOrder { get; }
```

#### Property Value

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

## Methods

### ClearServerDefineSymbol(string, bool) <a href="#ks_reactor_client_unity_editor_ksreactorconfigeditor_clearserverdefinesymbol_system_string_system_bo" id="ks_reactor_client_unity_editor_ksreactorconfigeditor_clearserverdefinesymbol_system_string_system_bo"></a>

Removes a server define symbol and optionally builds the server if the defines changed.

```csharp
public static bool ClearServerDefineSymbol(string symbol, bool buildServer = true)
```

#### Parameters

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

Symbol to clear.

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

If true, builds the server if the defines change.

#### Returns

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

True if the symbol was removed. False if it was not defined.

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

Called by Unity to draw/update the inspector UI.

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

### OnPostprocessBuild(BuildReport) <a href="#ks_reactor_client_unity_editor_ksreactorconfigeditor_onpostprocessbuild_unityeditor_build_reporting" id="ks_reactor_client_unity_editor_ksreactorconfigeditor_onpostprocessbuild_unityeditor_build_reporting"></a>

Restore the APIServerSecret after building completes.

```csharp
public void OnPostprocessBuild(BuildReport report)
```

#### Parameters

`report` BuildReport

Unity build report.

### OnPreprocessBuild(BuildReport) <a href="#ks_reactor_client_unity_editor_ksreactorconfigeditor_onpreprocessbuild_unityeditor_build_reporting_b" id="ks_reactor_client_unity_editor_ksreactorconfigeditor_onpreprocessbuild_unityeditor_build_reporting_b"></a>

Do not save the APIServerSecret when building the project.

```csharp
public void OnPreprocessBuild(BuildReport report)
```

#### Parameters

`report` BuildReport

Unity build report.

### SetServerDefineSymbol(string, bool) <a href="#ks_reactor_client_unity_editor_ksreactorconfigeditor_setserverdefinesymbol_system_string_system_bool" id="ks_reactor_client_unity_editor_ksreactorconfigeditor_setserverdefinesymbol_system_string_system_bool"></a>

Sets a server define symbol and optionally builds the server if the defines changed.

```csharp
public static bool SetServerDefineSymbol(string symbol, bool buildServer = true)
```

#### Parameters

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

Symbol to define

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

If true, builds the server if the defines change.

#### Returns

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

True if the symbol was added. False if it was already defined.
