Files
2026-03-04 09:37:33 +08:00

52 lines
1.2 KiB
C#

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;
}
}
}
}
}