Table of Contents

Class BootstrapSystem

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

Base class for bootstrap systems in FishMMO. Handles asset and scene loading, progress tracking, and initialization flow.

public class BootstrapSystem : MonoBehaviour
Inheritance
Object
Component
Behaviour
MonoBehaviour
BootstrapSystem
Derived
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

Fields

EditorPostloadAssets

Assets to load after scene loading in the editor.

public List<AddressableAssetKey> EditorPostloadAssets

Field Value

List<AddressableAssetKey>

EditorPostloadScenes

Scenes to load after preloading in the editor.

public List<AddressableSceneLoadData> EditorPostloadScenes

Field Value

List<AddressableSceneLoadData>

EditorPreloadAssets

Assets to preload in the editor before scene loading.

public List<AddressableAssetKey> EditorPreloadAssets

Field Value

List<AddressableAssetKey>

EditorPreloadScenes

Scenes to preload in the editor.

public List<AddressableSceneLoadData> EditorPreloadScenes

Field Value

List<AddressableSceneLoadData>

PostloadAssets

Assets to load after scene loading in standalone builds.

public List<AddressableAssetKey> PostloadAssets

Field Value

List<AddressableAssetKey>

PostloadScenes

Scenes to load after preloading in standalone builds.

public List<AddressableSceneLoadData> PostloadScenes

Field Value

List<AddressableSceneLoadData>

PreloadAssets

Assets to preload in standalone builds.

public List<AddressableAssetKey> PreloadAssets

Field Value

List<AddressableAssetKey>

PreloadScenes

Scenes to preload in standalone builds.

public List<AddressableSceneLoadData> PreloadScenes

Field Value

List<AddressableSceneLoadData>

WebGLPostloadAssets

Assets to load after scene loading in WebGL builds.

public List<AddressableAssetKey> WebGLPostloadAssets

Field Value

List<AddressableAssetKey>

WebGLPostloadScenes

Scenes to load after preloading in WebGL builds.

public List<AddressableSceneLoadData> WebGLPostloadScenes

Field Value

List<AddressableSceneLoadData>

WebGLPreloadAssets

Assets to preload in WebGL builds.

public List<AddressableAssetKey> WebGLPreloadAssets

Field Value

List<AddressableAssetKey>

WebGLPreloadScenes

Scenes to preload in WebGL builds.

public List<AddressableSceneLoadData> WebGLPreloadScenes

Field Value

List<AddressableSceneLoadData>

Methods

Awake()

Unity Awake message. Initializes logging callback.

protected virtual void Awake()

Remarks

Virtual so derived systems extend rather than hide it. A derived void Awake() that merely shadows this one silently suppresses it — Unity dispatches only the most-derived member — which is how OnDestroying() came to never run for MainBootstrapSystem.

InitializePostload()

Initializes the postload asset and scene loading process.

public void InitializePostload()

InitializePreload()

Initializes the preload asset and scene loading process.

public void InitializePreload()

OnBootstrapPostProcess(Scene)

Called after a scene is loaded to collect bootstrap systems in the new scene.

public void OnBootstrapPostProcess(Scene scene)

Parameters

scene Scene

The loaded scene.

OnCompletePreload()

Called when Preload is completed.

public virtual void OnCompletePreload()

OnCompleteProcessing()

public virtual void OnCompleteProcessing()

OnDestroy()

Unity OnDestroy message. Handles cleanup when the object is destroyed.

protected virtual void OnDestroy()

Remarks

Only clears OnInternalLogMessage if this instance is the current owner. That hook is a single-cast static assigned by every bootstrap system's Awake(), so several are alive at once and the last to wake owns it. Clearing unconditionally meant the first system destroyed during teardown silenced internal logging for every system still shutting down — exactly when those diagnostics matter most.

OnDestroying()

Called when the object is being destroyed. Override for custom cleanup logic.

public virtual void OnDestroying()

OnPostLoad()

Called immediately after Postload Scenes are enqueued to the Load Processor.

public virtual void OnPostLoad()

OnPreload()

Called immediately after Preload Scenes are enqueued to the Load Processor.

public virtual void OnPreload()

StartBootstrap()

Initiates the asset and scene loading process for this bootstrap system. This should be called explicitly, typically by a previous BootstrapSystem after a scene has been loaded.

public virtual void StartBootstrap()