F1R3ON Geschrieben 22. September 2016 Melden Share Geschrieben 22. September 2016 Liebe Community, ich überleg schon eine weile wie man am besten in Unity den Sound regelt? Wie regelt Ihr Ihn? Damit meine ich wie schafft Ihr es den BGM Volume und den SFX Volume voneinander zu trennen. Array? oder doch einfacher??? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 22. September 2016 Melden Share Geschrieben 22. September 2016 Ich würde gerne wissen wie du auf Array kommst? Ich habe ein Script, wo quasi bestimmte Globale Werte drinne sind. Beispiel Game.cs Da hab ich dann musicVolume, environmentVolume usw. Diese Werte sind auch mit PlayerPref gespeichert und werden auch einmalig beim Start geladen. Jetzt kann man ein Script schreiben, wo du dann dein AudioSource verändern willst. Beispiel die Lautstärke beim Start setzen. Natürlich muss man es erweitern, wenn man im Spiel (nicht im Menü) auch Lautstärke ändern kann. Da könnte man Events auslösen. Was auch gehen könnte ist, dass man einen static List<AudioSource> einvironmentVolume hat, wo man vllt beim Start alle in AudioSource reinpackt. Und beim Lautstärke verändern über das (Pausen-)Menü, könnte man die Liste durchgehen und die Laustärke einstellen. Was mir gerade spontan einfällt und auch vllt geht ist, dass man AudioSource im neuem Script vererbt. Damit kann man ja auch irgendwas hinkriegen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 23. September 2016 Melden Share Geschrieben 23. September 2016 Öh, bitte macht euch damit nicht so einen Stress. Unity 5 hat AudioMixerGroups, die sind genau für sowas da. Hier gibt's dazu schöne Tutorials: https://unity3d.com/learn/tutorials/modules/beginner/5-pre-order-beta/audiomixer-and-audiomixer-groups?playlist=17096 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 23. September 2016 Melden Share Geschrieben 23. September 2016 Öh, bitte macht euch damit nicht so einen Stress. Unity 5 hat AudioMixerGroups, die sind genau für sowas da. Hier gibt's dazu schöne Tutorials: https://unity3d.com/...?playlist=17096 Du hast recht. Hab gar nicht daran gedacht. Mein Vorschlag ist bisschen oldschool. Hatte das auch vor das neue UI angewendet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
F1R3ON Geschrieben 24. September 2016 Autor Melden Share Geschrieben 24. September 2016 Danke für den super Tipp mit den Audio Mixern. Hab es jz auch geschafft den SFX und den BGM damit zu regeln, hab nur mehr ein Problem. using UnityEngine; using UnityEngine.UI; using UnityEngine.Audio; using System.Collections; public class AudioMixManager : MonoBehaviour { [Header("Audio Mixer")] public AudioMixer SoundMix; public AudioMixer MusicMix; [Header("Toggle")] public Toggle SoundToggle; public Toggle MusicToggle; public void SetSoundVolume(float setSFXVolume) { if(SoundToggle.isOn == true) SoundMix.SetFloat ("SFXVolume", setSFXVolume); } public void SetMusicVolume(float setMusicVolume) { if(MusicToggle.isOn == true) MusicMix.SetFloat ("MusicVolume", setMusicVolume); } public void SetSoundMute() { if(SoundToggle.isOn == true) SoundMix.SetFloat ("SFXVolume", 0f); else SoundMix.SetFloat ("SFXVolume", -80.0f); } public void SetMusicMute() { if(MusicToggle.isOn == true) MusicMix.SetFloat ("MusicVolume", 0f); else MusicMix.SetFloat ("MusicVolume", -80.0f); } } Das ist mein Code für die Lautstärke und die Audio-Daten zu Muten. Nur wenn man das Muten an und ausmacht geht es immer auf die höchste Lautstärke zurück und nimmt nicht den Wert der Slider an. Ich schätze mal ich müsste die dynamischen float statt der 0f ersetzen bei der if anweisung in der public void SetMusicMute und SetSoundMute??? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. September 2016 Melden Share Geschrieben 25. September 2016 Du kannst noch eine private float-Variable pro Slider erstellen und benutzen: private float musicVolume; private void SetMusicVolume(float setMusicVolume) { musicVolume = setMusicVolume; //hier das, was du schon hast } Und bei SetMusicMute übergibst du musicVolume statt 0f. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
F1R3ON Geschrieben 25. September 2016 Autor Melden Share Geschrieben 25. September 2016 Danke hat super geklappt, so einfach und nicht komplex dennoch nicht selbst draufgekommen, vielen Dank^^ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.