AudioManager - Soundeffekte, Musik & Voiceovers in Unity
Was machst du eigentlich, wenn jemand auf einen Button im Spielmenü klickt, um einen Sound abzuspielen? Lass mich raten: Du fügst eine AudioSource zu dem Button hinzu. Dann fügst Du der AudioSource einen AudioClip hinzu. Und wenn jemand auf den Button klickt, startest Du die AudioSource. Ist das nicht verdammt kompliziert? Brauchst Du wirklich für jeden Button eine eigene AudioSource? Wahrscheinlich nicht. Und das gilt auch für Musik oder Voice-Overs in Zwischensequenzen. Deshalb habe ich einen AudioManager entwickelt.
Wie Du den AudioManager nutzen kannst
Der AudioManager stellt drei verschiedene AudioSources für Musik, Soundeffekte und Voice-Over zur Verfügung. Er verwaltet auch die Lautstärke für alle diese AudioSources sowie die Master-Lautstärke. Dies ermöglicht das einfache Abspielen von Soundeffekten, ohne jedes Mal eine eigene AudioSource konfigurieren zu müssen. Der AudioManager bietet dazu einige hilfreiche Methoden und öffentliche Variablen.
Finde heraus, ob Musik, Geräusche oder Voiceovers abgespielt werden:
if (AudioManager.service?.isMusicPlaying) {
// Do stuff...
}
if (AudioManager.service?.isAudioPlaying) {
// Do stuff...
}
if (AudioManager.service?.isVoicePlaying) {
// Do stuff...
}
Stelle die Lautstärke des Master-, Musik-, Sound- oder Voice-Players ein:
AudioManager.service?.masterVolume = 1f;
AudioManager.service?.musicVolume = 0.5f;
AudioManager.service?.soundVolume = 0.8f;
AudioManager.service?.voiceVolume = 0.2f;
Verwende die eingestellte Lautstärke, um die Lautstärke von AudioSources zu aktualisieren:
myAudioSource.volume = AudioManager.service?.musicVolume * AudioManager.service?.masterVolume;
myAudioSource.volume = AudioManager.service?.soundVolume * AudioManager.service?.masterVolume;
myAudioSource.volume = AudioManager.service?.voiceVolume * AudioManager.service?.masterVolume;
Spiele Soundeffekte, Musik und Voice-Overs ab oder halte die Wiedergabe an:
AudioManager.service?.PlayMusic(myMusicClip);
AudioManager.service?.StopMusic();
AudioManager.service?.PlaySound(mySoundClip);
AudioManager.service?.StopSound();
AudioManager.service?.PlayVoice(myVoiceClip);
AudioManager.service?.StopVoice();
Dein Feedback ist wichtig!
Was hältst Du von den hier vorgestellten Services? Fehlt Dir etwas oder funktioniert etwas nicht wie erwartet? Wie immer freue ich mich über Feedback. Lass mich gerne wissen was Du über dieses Modul denkst. Dafür kannst Du zum Beispiel die Kommentarfunktion unter dem Artikel nutzen. Weitere Kontakt-Möglichkeiten findest Du auf hier. Wenn Du einen Bug gefunden hast oder Dir eine Erweiterung wünscht, erstelle bitte einen Issue im GitHub-Repository. Weitere Dokumentation findest Du wie immer in der README des entsprechenden Moduls.
Noch keine Kommentare vorhanden.