77 lines
1.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|