Class BootstrapSystem
Base class for bootstrap systems in FishMMO. Handles asset and scene loading, progress tracking, and initialization flow.
public class BootstrapSystem : MonoBehaviour
- Inheritance
-
ObjectComponentBehaviourMonoBehaviourBootstrapSystem
- Derived
- Inherited Members
-
MonoBehaviour.IsInvoking()MonoBehaviour.CancelInvoke()MonoBehaviour.StopCoroutine(Coroutine)MonoBehaviour.StopAllCoroutines()MonoBehaviour.destroyCancellationTokenMonoBehaviour.useGUILayoutMonoBehaviour.didStartMonoBehaviour.didAwakeMonoBehaviour.runInEditModeBehaviour.enabledBehaviour.isActiveAndEnabledComponent.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.transformComponent.transformHandleComponent.gameObjectComponent.tagObject.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
Fields
EditorPostloadAssets
Assets to load after scene loading in the editor.
public List<AddressableAssetKey> EditorPostloadAssets
Field Value
EditorPostloadScenes
Scenes to load after preloading in the editor.
public List<AddressableSceneLoadData> EditorPostloadScenes
Field Value
EditorPreloadAssets
Assets to preload in the editor before scene loading.
public List<AddressableAssetKey> EditorPreloadAssets
Field Value
EditorPreloadScenes
Scenes to preload in the editor.
public List<AddressableSceneLoadData> EditorPreloadScenes
Field Value
PostloadAssets
Assets to load after scene loading in standalone builds.
public List<AddressableAssetKey> PostloadAssets
Field Value
PostloadScenes
Scenes to load after preloading in standalone builds.
public List<AddressableSceneLoadData> PostloadScenes
Field Value
PreloadAssets
Assets to preload in standalone builds.
public List<AddressableAssetKey> PreloadAssets
Field Value
PreloadScenes
Scenes to preload in standalone builds.
public List<AddressableSceneLoadData> PreloadScenes
Field Value
WebGLPostloadAssets
Assets to load after scene loading in WebGL builds.
public List<AddressableAssetKey> WebGLPostloadAssets
Field Value
WebGLPostloadScenes
Scenes to load after preloading in WebGL builds.
public List<AddressableSceneLoadData> WebGLPostloadScenes
Field Value
WebGLPreloadAssets
Assets to preload in WebGL builds.
public List<AddressableAssetKey> WebGLPreloadAssets
Field Value
WebGLPreloadScenes
Scenes to preload in WebGL builds.
public List<AddressableSceneLoadData> WebGLPreloadScenes
Field Value
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
sceneSceneThe 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()