Files
2026-03-04 10:03:45 +08:00

77 lines
1.6 KiB
C#

using UnityEngine;
using UnityStandardAssets.ImageEffects;
public class Underwater : MonoBehaviour
{
public float underwaterLevel = 7f;
public Color fogCol;
public float density;
public bool audio = true;
public AudioClip above;
public AudioClip below;
public AudioSource ammbientSource;
private bool defaultFog;
private Color defaultFogColor;
private float defaultFogDensity;
private Material noSkybox;
private bool aboveWater = true;
private bool belowWater;
private void Start()
{
defaultFog = RenderSettings.fog;
defaultFogColor = RenderSettings.fogColor;
defaultFogDensity = RenderSettings.fogDensity;
}
private void Update()
{
if (base.transform.position.y < underwaterLevel)
{
RenderSettings.fog = true;
RenderSettings.fogColor = fogCol;
RenderSettings.fogDensity = density;
GetComponent<BlurOptimized>().enabled = true;
if (aboveWater && audio)
{
GetComponent<AudioSource>().Stop();
GetComponent<AudioSource>().clip = below;
GetComponent<AudioSource>().volume = 1f;
ammbientSource.Pause();
GetComponent<AudioSource>().Play();
}
aboveWater = false;
belowWater = true;
}
else
{
RenderSettings.fog = defaultFog;
RenderSettings.fogColor = defaultFogColor;
RenderSettings.fogDensity = defaultFogDensity;
GetComponent<BlurOptimized>().enabled = false;
if (belowWater && audio)
{
GetComponent<AudioSource>().Stop();
GetComponent<AudioSource>().clip = above;
GetComponent<AudioSource>().volume = 0.07f;
ammbientSource.Play();
GetComponent<AudioSource>().Play();
}
belowWater = false;
aboveWater = true;
}
}
}