Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/EnviroAudioSource.cs
2026-02-21 16:45:37 +08:00

71 lines
1.2 KiB
C#

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<AudioSource>();
}
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();
}
}
}