Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/GameWater.cs
2026-03-04 09:37:33 +08:00

87 lines
2.2 KiB
C#

using Obvious.Soap;
using UnityEngine;
using UnityEngine.Rendering.HighDefinition;
public class GameWater : MonoBehaviourSingleton<GameWater>
{
public WaterSurface WaterSurface;
public FloatVariable dayTime;
public Gradient curves;
[SerializeField]
private BoolVariable isWaterHiden;
[SerializeField]
private IntVariable settings_waterQuality;
private float defaultAbsorbption;
private new void Awake()
{
base.Awake();
defaultAbsorbption = WaterSurface.absorptionDistance;
SetWaterQuality();
}
private void OnEnable()
{
isWaterHiden.OnValueChanged += IsWaterHiden_OnValueChanged;
if ((Object)(object)settings_waterQuality != null)
{
settings_waterQuality.OnValueChanged += Settings_waterQuality_OnValueChanged;
}
}
private void IsWaterHiden_OnValueChanged(bool obj)
{
WaterSurface.absorptionDistance = (obj ? 1000f : defaultAbsorbption);
}
private void Settings_waterQuality_OnValueChanged(int obj)
{
SetWaterQuality();
}
private void OnDisable()
{
isWaterHiden.OnValueChanged -= IsWaterHiden_OnValueChanged;
if ((Object)(object)settings_waterQuality != null)
{
settings_waterQuality.OnValueChanged -= Settings_waterQuality_OnValueChanged;
}
}
private void Update()
{
WaterSurface.scatteringColor = curves.Evaluate(dayTime.Value / 24f);
}
private void SetWaterQuality()
{
if (!((Object)(object)settings_waterQuality == null))
{
switch (settings_waterQuality.Value)
{
case 0:
WaterSurface.foamResolution = WaterSurface.WaterDecalRegionResolution.Resolution256;
WaterSurface.causticsResolution = WaterSurface.WaterCausticsResolution.Caustics256;
break;
case 1:
WaterSurface.foamResolution = WaterSurface.WaterDecalRegionResolution.Resolution256;
WaterSurface.causticsResolution = WaterSurface.WaterCausticsResolution.Caustics256;
break;
case 2:
WaterSurface.foamResolution = WaterSurface.WaterDecalRegionResolution.Resolution512;
WaterSurface.causticsResolution = WaterSurface.WaterCausticsResolution.Caustics512;
break;
case 3:
WaterSurface.foamResolution = WaterSurface.WaterDecalRegionResolution.Resolution512;
WaterSurface.causticsResolution = WaterSurface.WaterCausticsResolution.Caustics512;
break;
}
}
}
}