public sealed class AudioReverbZonesThe zones in a level, and which of them the listener is in.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
One winner per parameter, not a sum. A cupboard inside a cathedral is inside both; adding them gives a room that is neither, and averaging them gives a room that exists nowhere. So for each parameter the highest-priority zone containing the listener takes it outright, still faded across its own edge.
Every parameter a zone mentions is written every frame, including to zero. A zone the listener has left has to actively push its parameter back down; leaving it alone would mean the cathedral's reverb following the player out into the field, which is the bug this shape exists to make impossible.
The fade is the parameter's, not the zone's. Blend shapes the value across the boundary in space; a parameter's own SeekSeconds shapes it across time. Both are wanted, and they are different tools — the first stops a doorway being a step function, the second stops a teleport being a click.
Fields and properties (1)
public int CountHow many zones there are, from both sources.
Methods (7)
public void Add(AudioReverbZone zone)Adds a zone that stays until it is removed.
public bool Remove(AudioReverbZone zone)Removes one.
public void BeginSync()Starts rebuilding the set that comes from the world.
public void Sync(AudioReverbZone zone, in Vector3 position)Adds a zone for this frame, at a position its own does not decide.
public void Clear()Drops all of them, for a scene change.
public void Apply(in Vector3 listener, MixerParameters? parameters)Works out what the listener is standing in, and writes it to the parameters.
public float StrengthOf(string parameter)What a parameter was last driven to, for a test or an overlay to read.
Used by (4)
- AudioEngineVixen.Audio
- AudioSystemVixen.Audio
- ReverbZoneSystemTestsVixen.Audio.Tests
- ReverbZoneTestsVixen.Audio.Tests