using System; using UnityEngine.Rendering.HighDefinition; public class WaterBody : MonoBehaviourExtended { public Action OnWaterChangeState; private bool inWater; private WaterSearchParameters waterSearchParameters; private WaterSearchResult waterSearchResult; public WaterSurface water; public bool InWater => inWater; private void Start() { water = MonoBehaviourSingleton.Instance.WaterSurface; } public void CheckIsInWater() { } private void FixedUpdate() { waterSearchParameters.startPositionWS = base.transform.position; water.ProjectPointOnWaterSurface(waterSearchParameters, out waterSearchResult); if (!inWater && base.transform.position.y < waterSearchResult.projectedPositionWS.y) { OnWaterChangeState?.Invoke(obj: true); inWater = true; } if (inWater && base.transform.position.y >= waterSearchResult.projectedPositionWS.y) { OnWaterChangeState?.Invoke(obj: false); inWater = false; } } }