private void DrawSlider(Rect rect, AmbienceZone zone, AmbienceSource source) { float level = zone.GetLevel(source); float num = AudioUI.DrawHorizontalSlider(rect, 0f, 1f, 0f, level, AudioSliderType.Volume); if (level == num) { return; } if (zone.sources != null && zone.sources.Length > 0) { for (int i = 0; i < zone.sources.Length; i++) { if (zone.sources[i] == source) { if (num == 0f) { zone.sources[i] = zone.sources[zone.sources.Length - 1]; zone.volumes[i] = zone.volumes[zone.sources.Length - 1]; Array.Resize(ref zone.volumes, zone.sources.Length - 1); Array.Resize(ref zone.sources, zone.sources.Length - 1); } else { zone.volumes[i] = num; } if (activeAmbience.activeZone != null) { activeAmbience.TransitionToZone(activeAmbience.activeZone, 0.1f); } return; } } } if (zone.sources != null) { Array.Resize(ref zone.volumes, zone.sources.Length + 1); Array.Resize(ref zone.sources, zone.sources.Length + 1); } else { zone.volumes = new float[1]; zone.sources = new AmbienceSource[1]; } zone.sources[zone.sources.Length - 1] = source; zone.volumes[zone.sources.Length - 1] = num; if (activeAmbience.activeZone != null) { activeAmbience.TransitionToZone(activeAmbience.activeZone, 0.1f); } }
public float GetLevel(AmbienceSource source) { if (sources == null) { return(0f); } for (int i = 0; i < sources.Length; i++) { if (sources[i] == source) { return(volumes[i]); } } return(0f); }