private void SetSettingsFromSample(AudioSample sample) { if (AudioSource == null) { throw new Exception("AudioSourceContainer: No AudioSource set"); } Layer = sample.Layer; AudioLayerSettings layerS = layerSettings; VolumeModifier = sample.Settings.Volume; AudioSource.mute = layerS.Mute; AudioSource.loop = sample.Settings.Loop; AudioSource.priority = sample.Settings.Priority; AudioSource.pitch = sample.Settings.Pitch; AudioSource.bypassEffects = sample.Settings.BypassEffects; AudioSource.bypassListenerEffects = sample.Settings.BypassListenerEffects; AudioSource.bypassReverbZones = sample.Settings.BypassReverbZones; AudioSource.dopplerLevel = sample.Settings.DopplerLevel; AudioSource.panLevel = sample.Settings.PanLevel; AudioSource.spread = sample.Settings.Spread; AudioSource.maxDistance = sample.Settings.MaxDistance; AudioSource.pan = sample.Settings.Pan2D; AudioSource.clip = sample.Clip; }
private void Destroy(AudioSourceContainer source) { //Debug.Log("DESTROY " + source.gameObject.name); AudioLayerSettings settings = AudioLayerManager.GetAudioLayerSettings(source.Layer); Instance.AudioSources.Remove(source); GameObject.DestroyImmediate(source.gameObject); settings.ClipsPlaying--; }
public static void UpdateVolume(AudioLayer layer) { AudioLayerSettings settings = AudioLayerManager.GetAudioLayerSettings(layer); List <AudioSourceContainer> containers = Instance.FindSources(layer); foreach (AudioSourceContainer cont in containers) { cont.UpdateVolume(); } }
public static void Mute(AudioLayer layer) { AudioLayerSettings settings = AudioLayerManager.GetAudioLayerSettings(layer); List <AudioSourceContainer> containers = Instance.FindSources(layer); foreach (AudioSourceContainer cont in containers) { cont.AudioSource.mute = settings.Mute; } }
private static AudioSourceContainer RegisterAndCreateAudioSourceContainer(AudioSample sample) { GameObject soundObject = AudioSourceContainer.CreateContainer(sample); AudioSourceContainer cont = soundObject.GetComponent <AudioSourceContainer>(); AudioLayerSettings audioLayerSettings = AudioLayerManager.GetAudioLayerSettings(sample.Layer); //Register Instance.AddAudioSource(cont); audioLayerSettings.ClipsPlaying++; return(cont); }
private static void ResumeUnmuteEtc(AudioSourceContainer con1) { if (!con1.AudioSource.isPlaying) { con1.AudioSource.Play(); } AudioLayerSettings settings = AudioLayerManager.GetAudioLayerSettings(con1.Layer); if (!settings.Mute) { con1.AudioSource.mute = false; } }
public override void OnInspectorGUI() { AudioLayerManager manager = target as AudioLayerManager; int count = manager.audioLayerSettings.Count; if (count == 0) { manager.Init(); } if (SavedFoldout("Description")) { EditorGUILayout.TextArea(description); } for (int i = 0; i < count; i++) { AudioLayerSettings settings = manager.audioLayerSettings[i]; GUIContent name = new GUIContent("AudioLayer: " + settings.Layer.ToString() + " Clips: " + settings.ClipsPlaying.ToString(), settingsNameTooltip); if (SavedFoldout(name, i)) { EditorGUI.BeginChangeCheck(); EditorGUI.indentLevel++; { settings.Volume = EditorGUILayout.Slider("Volume: ", settings.Volume, 0, 1); settings.Mute = EditorGUILayout.Toggle("Mute: ", settings.Mute); settings.MaxClips = EditorGUILayout.IntField("MaxClips: ", settings.MaxClips); } EditorGUI.indentLevel--; if (EditorGUI.EndChangeCheck()) { AudioManager.Mute(settings.Layer); AudioManager.UpdateVolume(settings.Layer); } } } }