namespace UnchartedLimbo.Antibody.Runtime
public static class ManagersBundle
private static EffectsManager _effectsManager;
private static CameraManager _cameraManager;
private static SpoutManager _spoutManager;
private static DancerManager _dancerManager;
private static LimbPostProcessorManager _limbPostProcessorManager;
private static LightManager _lightManager;
private static BlenderManager _masterBlender;
public static SpoutManager SpoutManager => _spoutManager ??= Object.FindFirstObjectByType<SpoutManager>();
public static EffectsManager EffectsManager => _effectsManager ??= Object.FindFirstObjectByType<EffectsManager>();
public static CameraManager CameraManager => _cameraManager ??= Object.FindFirstObjectByType<CameraManager>();
public static DancerManager DancerManager => _dancerManager ??= Object.FindFirstObjectByType<DancerManager>();
public static LimbPostProcessorManager LimbPostProcessorManager => _limbPostProcessorManager ??= Object.FindFirstObjectByType<LimbPostProcessorManager>();
public static LightManager LightManager => _lightManager ??= Object.FindFirstObjectByType<LightManager>();
public static BlenderManager BlenderManager => _masterBlender ??= Object.FindFirstObjectByType<BlenderManager>();
public static void Reload()
_effectsManager = Object.FindFirstObjectByType<EffectsManager>();
_cameraManager = Object.FindFirstObjectByType<CameraManager>();
_spoutManager = Object.FindFirstObjectByType<SpoutManager>();
_dancerManager = Object.FindFirstObjectByType<DancerManager>();
_limbPostProcessorManager = Object.FindFirstObjectByType<LimbPostProcessorManager>();
_lightManager = Object.FindFirstObjectByType<LightManager>();
_masterBlender = Object.FindFirstObjectByType<BlenderManager>();
TryInitialize(SpoutManager);
TryInitialize(DancerManager);
TryInitialize(LimbPostProcessorManager);
TryInitialize(CameraManager);
TryInitialize(EffectsManager);
TryInitialize(LightManager);
TryInitialize(BlenderManager);
private static void TryInitialize(ManagerBase manager)
if (!manager.HasInvalidEntries)
manager.Initialize(false);
Debug.Log($"{manager.GetType().Name}: Had to Reinitialize Manager.");
public static void ApplyState(StateAsset stateAsset)
if (DancerManager != null)
DancerManager.ApplyState(stateAsset);
if (LimbPostProcessorManager != null)
LimbPostProcessorManager.ApplyState(stateAsset);
if (CameraManager != null)
CameraManager.ApplyState(stateAsset);
if (EffectsManager != null)
EffectsManager.ApplyState(stateAsset);
if (LightManager != null)
LightManager.ApplyState(stateAsset);
if (BlenderManager != null)
BlenderManager.ApplyState(stateAsset);
public static void ReloadAndApplyState(StateAsset stateAsset)