using UnityEngine; namespace ProjectM.Client { /// /// Client-only audio volume BUSES, read by the procedural-audio presentation systems /// ( = Music bus; + /// = Sfx bus). MASTER is applied separately as /// AudioListener.volume (a global listener gain) by , so the per-call /// multipliers here are the per-bus trims ONLY — never multiply by master again or it double-attenuates. /// /// A plain static (not an IComponentData) so the Burst-free managed presentation systems read it with /// zero ECS plumbing. NOT named AudioSettings — that collides with UnityEngine.AudioSettings. /// Reset on play-enter () so a fast-enter-playmode /// domain reload never carries a stale value into a fresh session. /// /// public static class GameVolume { /// Music/ambience bus trim (0..1). Applied by AmbientAudioSystem. public static float Music = 1f; /// SFX bus trim (0..1). Applied by Combat/World feedback systems. public static float Sfx = 1f; [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] static void ResetStatics() { Music = 1f; Sfx = 1f; } } }