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

# Class ksConnectionHUD

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

Self contained GUI designed to help new reactor users establish connection to servers for the first time.

```csharp
[DisallowMultipleComponent]
[AddComponentMenu("Reactor/ksConnectionHUD")]
public class ksConnectionHUD : MonoBehaviour
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← Object ← Component ← Behaviour ← MonoBehaviour ← [ksConnectionHUD](/reactor/api-reference/ks.reactor.client.unity/ks.reactor.client.unity.ksconnectionhud.md)

#### Inherited Members

MonoBehaviour.IsInvoking(), MonoBehaviour.CancelInvoke(), MonoBehaviour.Invoke(string, float), MonoBehaviour.InvokeRepeating(string, float, float), MonoBehaviour.CancelInvoke(string), MonoBehaviour.IsInvoking(string), MonoBehaviour.StartCoroutine(string), MonoBehaviour.StartCoroutine(string, object), MonoBehaviour.StartCoroutine(IEnumerator), MonoBehaviour.StartCoroutine\_Auto(IEnumerator), MonoBehaviour.StopCoroutine(IEnumerator), MonoBehaviour.StopCoroutine(Coroutine), MonoBehaviour.StopCoroutine(string), MonoBehaviour.StopAllCoroutines(), MonoBehaviour.print(object), MonoBehaviour.destroyCancellationToken, MonoBehaviour.useGUILayout, MonoBehaviour.runInEditMode, Behaviour.enabled, Behaviour.isActiveAndEnabled, Component.GetComponent(Type), Component.GetComponent\<T>(), Component.TryGetComponent(Type, out Component), Component.TryGetComponent\<T>(out T), Component.GetComponent(string), Component.GetComponentInChildren(Type, bool), Component.GetComponentInChildren(Type), Component.GetComponentInChildren\<T>(bool), Component.GetComponentInChildren\<T>(), Component.GetComponentsInChildren(Type, bool), Component.GetComponentsInChildren(Type), Component.GetComponentsInChildren\<T>(bool), Component.GetComponentsInChildren\<T>(bool, List\<T>), Component.GetComponentsInChildren\<T>(), Component.GetComponentsInChildren\<T>(List\<T>), Component.GetComponentInParent(Type, bool), Component.GetComponentInParent(Type), Component.GetComponentInParent\<T>(bool), Component.GetComponentInParent\<T>(), Component.GetComponentsInParent(Type, bool), Component.GetComponentsInParent(Type), Component.GetComponentsInParent\<T>(bool), Component.GetComponentsInParent\<T>(bool, List\<T>), Component.GetComponentsInParent\<T>(), Component.GetComponents(Type), Component.GetComponents(Type, List\<Component>), Component.GetComponents\<T>(List\<T>), Component.GetComponents\<T>(), Component.CompareTag(string), Component.SendMessageUpwards(string, object, SendMessageOptions), Component.SendMessageUpwards(string, object), Component.SendMessageUpwards(string), Component.SendMessageUpwards(string, SendMessageOptions), Component.SendMessage(string, object), Component.SendMessage(string), Component.SendMessage(string, object, SendMessageOptions), Component.SendMessage(string, SendMessageOptions), Component.BroadcastMessage(string, object, SendMessageOptions), Component.BroadcastMessage(string, object), Component.BroadcastMessage(string), Component.BroadcastMessage(string, SendMessageOptions), Component.transform, Component.gameObject, Component.tag, 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

### Host <a href="#ks_reactor_client_unity_ksconnectionhud_host" id="ks_reactor_client_unity_ksconnectionhud_host"></a>

```csharp
[Header("Direct Connection")]
[Tooltip("Default host for direct connection")]
public string Host
```

#### Field Value

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

### Port <a href="#ks_reactor_client_unity_ksconnectionhud_port" id="ks_reactor_client_unity_ksconnectionhud_port"></a>

```csharp
[Tooltip("Default port for direct connection")]
public ushort Port
```

#### Field Value

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

## Methods

### ConnectToRoom(ksRoomInfo) <a href="#ks_reactor_client_unity_ksconnectionhud_connecttoroom_ks_reactor_ksroominfo" id="ks_reactor_client_unity_ksconnectionhud_connecttoroom_ks_reactor_ksroominfo"></a>

Create and connect to a new room defined in roomInfo. Registers an OnConnect handler, OnDisconnect handler,

```csharp
public virtual void ConnectToRoom(ksRoomInfo roomInfo)
```

#### Parameters

`roomInfo` [ksRoomInfo](/reactor/api-reference/ks.reactor/ks.reactor.ksroominfo.md)

Information needed to connect to a server room.

### DrawGUI(int) <a href="#ks_reactor_client_unity_ksconnectionhud_drawgui_system_int32" id="ks_reactor_client_unity_ksconnectionhud_drawgui_system_int32"></a>

Draw GUI

```csharp
public void DrawGUI(int windowId)
```

#### Parameters

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

Id of GUI Window

### GetRooms() <a href="#ks_reactor_client_unity_ksconnectionhud_getrooms" id="ks_reactor_client_unity_ksconnectionhud_getrooms"></a>

Get a list of rooms that this project is allowed to connect to. If the connection type is ONLINE then make an API request for a list of rooms.If a direct connection is required then use the host and port properties to create a room info connection object and then attempt to connect to the room.

```csharp
public void GetRooms()
```

### OnConnect(ConnectStatus, ksAuthenticationResult) <a href="#ks_reactor_client_unity_ksconnectionhud_onconnect_ks_reactor_client_ksbaseroom_connectstatus_ks_reac" id="ks_reactor_client_unity_ksconnectionhud_onconnect_ks_reactor_client_ksbaseroom_connectstatus_ks_reac"></a>

Log error if connection failed. Override to disable or modify

```csharp
protected virtual void OnConnect(ksBaseRoom.ConnectStatus status, ksAuthenticationResult result)
```

#### Parameters

`status` [ksBaseRoom](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom.md).[ConnectStatus](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom/ks.reactor.client.ksbaseroom.connectstatus.md)

Connection status.

`result` [ksAuthenticationResult](/reactor/api-reference/ks.reactor/ks.reactor.ksauthenticationresult.md)

Authentication result from user-defined authentication handlers.

### OnDisconnect(ConnectStatus) <a href="#ks_reactor_client_unity_ksconnectionhud_ondisconnect_ks_reactor_client_ksbaseroom_connectstatus" id="ks_reactor_client_unity_ksconnectionhud_ondisconnect_ks_reactor_client_ksbaseroom_connectstatus"></a>

Cleanup room on disconnect. Override to disable or modify

```csharp
protected virtual void OnDisconnect(ksBaseRoom.ConnectStatus status)
```

#### Parameters

`status` [ksBaseRoom](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom.md).[ConnectStatus](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksbaseroom/ks.reactor.client.ksbaseroom.connectstatus.md)

Connection status.
