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

