using NWH.DWP2.WaterObjects; using Unity.Mathematics; using UnityEngine; using UnityEngine.Rendering.HighDefinition; namespace NWH.DWP2.WaterData { [DefaultExecutionOrder(-50)] public class WaterSurfaceDataProvider : WaterDataProvider { public WaterSurface targetSurface; private WaterSearchParameters searchParameters; private WaterSearchResult searchResult; private Vector3 _point; public override bool SupportsWaterHeightQueries() { return true; } public override bool SupportsWaterNormalQueries() { return false; } public override bool SupportsWaterFlowQueries() { return false; } public override void GetWaterHeights(WaterObject waterObject, ref Vector3[] points, ref float[] waterHeights) { int num = points.Length; Debug.Log($"POINTS{num}"); for (int i = 0; i < num; i++) { searchParameters.startPositionWS = searchResult.candidateLocationWS; searchParameters.targetPositionWS = new float3(points[i]); searchParameters.error = 0.01f; searchParameters.maxIterations = 8; if (targetSurface.ProjectPointOnWaterSurface(searchParameters, out searchResult)) { waterHeights[i] = searchResult.candidateLocationWS.y; } } } } }