Audio
The Audio system provides a centralized way to manage music, sound effects (SFX), and UI sounds.
Components
- Singleton manager for playing Music, SFX, UI, and Other - AudioClips.
- Supports: - Mixer group routing ( - MusicGroup,- SFXGroup,- UIGroup,- OtherGroup).
- Fade-in/out for Music. 
- Saving/restoring music playback positions. 
- Randomized pitch for SFX/UI. 
- Override previous Other audio clip. 
 
- Requires an - AudioRegistry.asset in a- Resourcesfolder in your project.
- ScriptableObjectthat maps- stringkeys to- AudioClips.
- Create one - AudioRegistryin your Project via- Create > MeshMapLabs > Building Blocks > Audio > AudioRegistry. Place it in a- Resourcesfolder to be loaded via- AudioRegistryCache.Instance.
- Change load path dynamically with - AudioRegistryCache.SetResourcePath().
- UI slider bindings for mixer volume control. 
- Saves user preferences to - PlayerPrefs.
- Mixer parameters: - MusicVolume,- SFXVolume,- UIVolume.
- Simple - MonoBehaviourto play a clip on an- AudioSource.
- Optional pitch randomization. 
- Can trigger on - OnEnableor manually.
Example Workflow
- Add the - AudioManagerWithSettings.prefab to your scene.
- Create an - AudioRegistry.asset in a- Resourcesfolder.
- Add unique - stringkeys and- AudioClipsto the- AudioRegistry.
- Add three - Slidersto your game UI and assign them in- AudioSettings.
- Add a - SliderValueTextcomponent to each- Sliderand assign a- TextMeshProUGUIto each.
- Play the - AudioClipsfrom anywhere in your project by referencing- AudioManager.Instance.
Example Code
// Play UI sound
AudioManager.Instance.PlayUI("UI.ButtonClick", randomizePitch: true);
// Play looping background music
AudioManager.Instance.PlayMusic("Music.MainTheme", loop: true, fadeIn: true);
// Adjust music volume via UI slider
public void OnMusicVolumeChanged(float value)
{
    AudioManager.Instance.SetMusicVolume(value);
}Prefabs
- AudioManager — Ready-to-use manager - GameObjectwith mixer groups and- AudioSources preconfigured. Make sure there is an- AudioRegistryin your Project.
- AudioManagerWithSettings — Variant with - AudioSettingsUI bindings. Requires a UI with volume sliders to be setup.
Last updated
