Audio Manager Examples

Practical Examples

Example 1: Game Manager Audio Control

public class GameManager : MonoBehaviour
{
    void Start()
    {
        // Play background music when game starts
        USM.PlayMusic(Audio.Music.MainTheme);
        
        // Set initial volumes
        USM.SetMusicVolume(0.7f);
        USM.SetSFXVolume(1.0f);
    }
    
    public void OnGamePaused()
    {
        // Lower music volume when paused
        USM.SetMusicVolume(0.3f, 0.5f);
    }
    
    public void OnGameResumed()
    {
        // Restore music volume
        USM.SetMusicVolume(0.7f, 0.5f);
    }
    
    public void OnGameOver()
    {
        // Stop music and play game over sound
        USM.StopMusic(null, true, 2.0f);
        USM.PlaySFX(Audio.Sounds.GameOver);
    }
}

Example 2: Player Audio Controller

public class PlayerAudio : MonoBehaviour
{
    public void PlayFootstep()
    {
        // Play footstep at player position
        USM.PlaySFXAtPosition(Audio.Sounds.Explosion, transform.position);
    }
    
    public void PlayJump()
    {
        USM.PlaySFX(Audio.Sounds.Jump);
    }
    
    public void PlayDamage()
    {
        // Play damage sound with random pitch variation
        USM.PlaySFX(Audio.Sounds.Damage);
           .SetPitch(Random.Range(0.9f, 1.1f));
    }
}

Example 3: UI Audio Controller

public class UIAudio : MonoBehaviour
{
    public void OnButtonHover()
    {
        USM.PlaySFX(Audio.Sounds.ButtonHover);
    }
    
    public void OnButtonClick()
    {
        USM.PlaySFX(Audio.Sounds.ButtonClick);
    }
    
    public void OnMenuOpen()
    {
        USM.PlaySFX(Audio.Sounds.MenuOpen);
    }
    
    public void OnMenuClose()
    {
        USM.PlaySFX(Audio.Sounds.MenuClose);
    }
}

Event System

Audio Events You Can Listen To:

void OnEnable()
{
    // Subscribe to audio events
    USM.OnAudioStarted += OnAudioStarted;
    USM.OnAudioStopped += OnAudioStopped;
    USM.OnAudioFinished += OnAudioFinished;
}

void OnDisable()
{
    // Unsubscribe from events
    USM.OnAudioStarted -= OnAudioStarted;
    USM.OnAudioStopped -= OnAudioStopped;
    USM.OnAudioFinished -= OnAudioFinished;
}

void OnAudioStarted(string audioID)
{
    Debug.Log($"Audio started: {audioID}");
    
    // Example: Show subtitle when dialogue plays
    if (audioID.StartsWith("Dialogue_"))
    {
        ShowSubtitle(audioID);
    }
}

void OnAudioStopped(string audioID)
{
    Debug.Log($"Audio stopped: {audioID}");
}

void OnAudioFinished(string audioID)
{
    Debug.Log($"Audio finished: {audioID}");
    
    // Example: Proceed to next dialogue
    if (audioID.StartsWith("Dialogue_"))
    {
        HideSubtitle();
        PlayNextDialogue();
    }
}

Last updated