Class CharacterSelectSystem
- Namespace
- FishMMO.Server.Implementation.LoginServer
- Assembly
- FishMMO.Server.dll
Manages character selection, deletion, and listing for player accounts on the login server. Broadcast replies are marshalled back to the main thread via a thread-safe queue drained in OnLateUpdate.
[CreateAssetMenu(fileName = "CharacterSelectSystem", menuName = "FishMMO/Server/LoginServer/Character Select System", order = 1)]
[RequiresDataContainer(typeof(CharacterSelectSystemMainThreadQueueData))]
[RequiresDataContainer(typeof(CharacterSelectSystemRuntimeData))]
[RequiresDataContainer(typeof(AsyncWorkerData))]
public class CharacterSelectSystem : ServerBehaviour, IServerBehaviour<INetworkManagerWrapper, ServerManager, NetworkConnection, IServerBehaviour>, IServerComponent<INetworkManagerWrapper, ServerManager, NetworkConnection, IServerBehaviour>, ICharacterSelectSystem, IServerBehaviour, IServerComponent
- Inheritance
-
ObjectScriptableObjectCharacterSelectSystem
- Implements
- Inherited Members
-
ScriptableObject.SetDirty()ScriptableObject.CreateInstance<T>()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.nameObject.hideFlags
Properties
KeepDeleteData
If true, keeps deleted character data in the database for recovery or auditing.
public bool KeepDeleteData { get; }
Property Value
Methods
InitializeOnce()
Initializes the character select system, registering broadcast handlers for character list, delete, and select requests.
public override ServerComponentInitializationStatus InitializeOnce()
Returns
OnDeinitialize()
Cleans up the character select system, unregistering broadcast handlers for character list, delete, and select requests. Drains remaining main-thread responses so clients get their final messages.
public override void OnDeinitialize()
OnRemoteConnectionStopped(NetworkConnection)
Releases per-connection in-flight request state when a client disconnects.
protected override void OnRemoteConnectionStopped(NetworkConnection conn)
Parameters
connNetworkConnection
OnUpdate(float)
Drains the main-thread response queue each frame. All network operations from async workers are marshalled through this queue to ensure they execute on the main Unity thread.
protected override void OnUpdate(float deltaTime)
Parameters
deltaTimefloatTime elapsed since last frame.