升级6.4.升级水,升级天气
This commit is contained in:
@@ -29,17 +29,18 @@ namespace WaveHarmonic.Crest
|
||||
[@HelpURL("Manual/Events.html#query-events")]
|
||||
public sealed partial class QueryEvents : ManagedBehaviour<WaterRenderer>
|
||||
{
|
||||
[SerializeField, HideInInspector]
|
||||
#pragma warning disable 414
|
||||
int _Version = 0;
|
||||
#pragma warning restore 414
|
||||
|
||||
|
||||
[Tooltip("What transform should the queries be based on.\n\n\"Viewer\" will reuse queries already performed by the Water Renderer")]
|
||||
[@GenerateAPI]
|
||||
[@DecoratedField, SerializeField]
|
||||
QuerySource _Source;
|
||||
|
||||
[Tooltip("The viewer as the source of the queries.\n\nOnly needs to be set if using multiple viewpoints on the Water Renderer.")]
|
||||
[@Show(nameof(_Source), nameof(QuerySource.Viewer))]
|
||||
[@GenerateAPI]
|
||||
[@DecoratedField]
|
||||
[SerializeField]
|
||||
Camera _Viewer;
|
||||
|
||||
[Tooltip(ICollisionProvider.k_LayerTooltip)]
|
||||
[@GenerateAPI]
|
||||
[@DecoratedField, SerializeField]
|
||||
@@ -49,14 +50,14 @@ namespace WaveHarmonic.Crest
|
||||
[Header("Distance From Water Surface")]
|
||||
|
||||
[Tooltip("The minimum wavelength for queries.\n\nThe higher the value, the more smaller waves will be ignored when sampling the water surface.")]
|
||||
[@Predicated(nameof(_Source), inverted: true, nameof(QuerySource.Transform))]
|
||||
[@Enable(nameof(_Source), nameof(QuerySource.Transform))]
|
||||
[@GenerateAPI]
|
||||
[@DecoratedField, SerializeField]
|
||||
float _MinimumWavelength = 1f;
|
||||
|
||||
[@Label("Signed")]
|
||||
[Tooltip("Whether to keep the sign of the value (ie positive/negative).\n\nA positive value means the query point is above the surface, while a negative means it below the surface.")]
|
||||
[@Predicated(nameof(_DistanceFromSurfaceUseCurve), inverted: true)]
|
||||
[@Disable(nameof(_DistanceFromSurfaceUseCurve))]
|
||||
[@GenerateAPI]
|
||||
[@DecoratedField, SerializeField]
|
||||
bool _DistanceFromSurfaceSigned;
|
||||
@@ -77,7 +78,7 @@ namespace WaveHarmonic.Crest
|
||||
|
||||
[@Label("Curve")]
|
||||
[Tooltip("Apply a curve to the distance.\n\nValues towards \"one\" means closer to the water surface.")]
|
||||
[@Predicated(nameof(_DistanceFromSurfaceUseCurve))]
|
||||
[@Enable(nameof(_DistanceFromSurfaceUseCurve))]
|
||||
[@GenerateAPI]
|
||||
[UnityEngine.Serialization.FormerlySerializedAs("_DistanceCurve")]
|
||||
[@DecoratedField, SerializeField]
|
||||
@@ -88,7 +89,7 @@ namespace WaveHarmonic.Crest
|
||||
|
||||
[@Label("Signed")]
|
||||
[Tooltip("Whether to keep the sign of the value (ie positive/negative).\n\nA positive value means the query point is over water, while a negative means it is over land.")]
|
||||
[@Predicated(nameof(_DistanceFromEdgeUseCurve), inverted: true)]
|
||||
[@Disable(nameof(_DistanceFromEdgeUseCurve))]
|
||||
[@GenerateAPI]
|
||||
[@DecoratedField, SerializeField]
|
||||
bool _DistanceFromEdgeSigned;
|
||||
@@ -107,7 +108,7 @@ namespace WaveHarmonic.Crest
|
||||
|
||||
[@Label("Curve")]
|
||||
[Tooltip("Apply a curve to the distance.\n\nValues towards \"one\" means closer to the water's edge.")]
|
||||
[@Predicated(nameof(_DistanceFromEdgeUseCurve))]
|
||||
[@Enable(nameof(_DistanceFromEdgeUseCurve))]
|
||||
[@GenerateAPI]
|
||||
[@DecoratedField, SerializeField]
|
||||
AnimationCurve _DistanceFromEdgeCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f);
|
||||
@@ -174,6 +175,11 @@ namespace WaveHarmonic.Crest
|
||||
|
||||
var distance = water.ViewerHeightAboveWater;
|
||||
|
||||
if (water.MultipleViewpoints && (_Viewer == null || !water.GetViewerHeightAboveWater(_Viewer, out distance)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_Source == QuerySource.Transform)
|
||||
{
|
||||
if (!_SampleHeightHelper.SampleHeight(transform.position, out var height, minimumLength: 2f * _MinimumWavelength, _Layer)) return;
|
||||
@@ -233,6 +239,11 @@ namespace WaveHarmonic.Crest
|
||||
|
||||
var distance = water.ViewerDistanceToShoreline;
|
||||
|
||||
if (water.MultipleViewpoints && (_Viewer == null || !water.GetViewerDistanceToShoreline(_Viewer, out distance)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_Source == QuerySource.Transform)
|
||||
{
|
||||
if (!_SampleDepthHelper.SampleDistanceToWaterEdge(transform.position, out distance))
|
||||
|
||||
Reference in New Issue
Block a user