Table of Contents

Class UITKLogin

Namespace
FishMMO.Client
Assembly
FishMMO.Client.dll

UI Toolkit implementation of the login control providing identifier/password input, registration access, sign-in and the full authentication-result handling flow.

public class UITKLogin : UITKControl
Inheritance
Object
Component
Behaviour
MonoBehaviour
UITKLogin
Inherited Members
MonoBehaviour.IsInvoking()
MonoBehaviour.CancelInvoke()
MonoBehaviour.StopCoroutine(Coroutine)
MonoBehaviour.StopAllCoroutines()
MonoBehaviour.destroyCancellationToken
MonoBehaviour.useGUILayout
MonoBehaviour.didStart
MonoBehaviour.didAwake
MonoBehaviour.runInEditMode
Behaviour.enabled
Behaviour.isActiveAndEnabled
Component.GetComponent<T>()
Component.TryGetComponent<T>(out T)
Component.GetComponentInChildren<T>()
Component.GetComponentsInChildren<T>()
Component.GetComponentInParent<T>()
Component.GetComponentsInParent<T>()
Component.GetComponents<T>()
Component.GetComponentIndex()
Component.CompareTag(TagHandle)
Component.transform
Component.transformHandle
Component.gameObject
Component.tag
Object.GetEntityId()
Object.GetInstanceID()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.DestroyObject(Object)
Object.FindObjectsOfType<T>()
Object.FindObjectsByType<T>(FindObjectsSortMode)
Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
Object.FindObjectOfType<T>()
Object.FindFirstObjectByType<T>()
Object.FindAnyObjectByType<T>()
Object.FindFirstObjectByType<T>(FindObjectsInactive)
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.ToString()
Object.name
Object.hideFlags

Remarks

Secure password input limitation: UnityEngine.UIElements.TextField stores text as a managed string and exposes no byte[], char[], or SecureString API. .NET strings are immutable and cannot be deterministically zeroed. The password-field masking provides visual masking only. The SRP protocol ensures the password never travels on the wire, which is the primary protection.

Fields

OnLoginSuccessEnd

Called after OnLoginSuccessStart finishes.

public Action OnLoginSuccessEnd

Field Value

Action

OnLoginSuccessStart

Called when a Login Success Client Authentication result is received from the server.

public Action OnLoginSuccessStart

Field Value

Action

Properties

CanDrag

Full-screen forms are not windows: there is nowhere to drag them to.

protected override bool CanDrag { get; }

Property Value

bool

Remarks

See CanDrag, which defaults every Window panel to draggable.

Methods

Hide(bool)

Hides the login panel and resets the handshake message.

public override void Hide(bool overrideIsAlwaysOpen)

Parameters

overrideIsAlwaysOpen bool

Remarks

Overrides Hide(bool), not Hide(). Hide() is non-virtual and only forwards here, so this is the one place teardown can live where every caller reaches it — quit-to-login calls the bool form directly.

OnAfterShow()

Puts the caret where the player is going to type, on controls whose lock state matches the request that is actually outstanding.

protected override void OnAfterShow()

OnAfterStarting()

Re-applies the sign-in lock after the visual tree was rebuilt.

protected override void OnAfterStarting()

Remarks

SetSignInLocked(bool) writes into elements that the next hide/show replaces, so a panel that came back during a login still in flight — which is exactly what the verification and TOTP flows do, and what the reply timeout does — presented an enabled Sign In button over a request the client was still waiting on. Driven off the guard rather than off a second copy of the flag, so the two cannot disagree.

OnClick_Login()

Validates input and initiates the login process.

public void OnClick_Login()

OnClick_OnOptions()

Shows the options panel, which lives in ClientPreboot and is therefore shared with every scene loaded after it rather than owned by this one.

public void OnClick_OnOptions()

OnClick_OnRegister()

Hides the login panel and shows the registration panel.

public void OnClick_OnRegister()

OnClick_Quit()

Quits the client application.

public void OnClick_Quit()

OnClientSet()

Subscribes to connection and authentication events when the client is injected.

public override void OnClientSet()

OnClientUnset()

Unsubscribes from connection and authentication events when the client is cleared.

public override void OnClientUnset()

OnQuitToLogin()

Shows the login panel and unlocks sign-in controls when quitting to login.

public override void OnQuitToLogin()

OnStarting()

Resolves and caches visual elements and wires up button callbacks.

public override void OnStarting()

OnTick()

Per-frame hook for controls that need one.

protected override void OnTick()

SetSignInLocked(bool)

Sets the locked state for signing in (enables/disables controls).

public void SetSignInLocked(bool locked)

Parameters

locked bool

True to lock (disable) controls, false to unlock.