using UnityEngine; public class EnviroAudioSource : MonoBehaviour { public enum AudioSourceFunction { Weather1 = 0, Weather2 = 1, Ambient = 2, Thunder = 3 } public AudioSourceFunction myFunction; public AudioSource audiosrc; public bool isFadingIn; public bool isFadingOut; public float fadingSpeed = 0.1f; private void Start() { if (audiosrc == null) { audiosrc = GetComponent(); } if (myFunction == AudioSourceFunction.Weather1 || myFunction == AudioSourceFunction.Weather2) { audiosrc.loop = true; audiosrc.volume = 0f; } } public void FadeOut() { isFadingOut = true; isFadingIn = false; } public void FadeIn(AudioClip clip) { isFadingIn = true; isFadingOut = false; audiosrc.clip = clip; audiosrc.Play(); } private void Update() { if (isFadingIn && audiosrc.volume < 1f) { audiosrc.volume += fadingSpeed * Time.deltaTime; } else if (isFadingIn && audiosrc.volume >= 0.999f) { isFadingIn = false; } if (isFadingOut && audiosrc.volume > 0f) { audiosrc.volume -= fadingSpeed * Time.deltaTime; } else if (isFadingOut && audiosrc.volume == 0f) { isFadingOut = false; audiosrc.Stop(); } } }