升级水插件
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// Crest Water System
|
||||
// Crest Water System
|
||||
// Copyright © 2024 Wave Harmonic. All rights reserved.
|
||||
|
||||
using UnityEngine;
|
||||
@@ -82,27 +82,28 @@ namespace WaveHarmonic.Crest
|
||||
{
|
||||
var layers = _Water.AnimatedWavesLod._CollisionLayers;
|
||||
|
||||
// Displacement is the fallback if there are no layers (ie single layer).
|
||||
if (layers == CollisionLayers.Nothing)
|
||||
{
|
||||
return _Displacement;
|
||||
}
|
||||
|
||||
if (layer == CollisionLayer.Everything)
|
||||
var everything = layer == CollisionLayer.Everything;
|
||||
|
||||
// Displacement is the final layer, if present.
|
||||
if (everything && layers.HasFlag(CollisionLayers.Displacement))
|
||||
{
|
||||
if (layers.HasFlag(CollisionLayers.Displacement))
|
||||
{
|
||||
return _Displacement;
|
||||
}
|
||||
return _Displacement;
|
||||
}
|
||||
|
||||
if (layer >= CollisionLayer.AfterDynamicWaves)
|
||||
// Chosen/fallback to Dynamic Waves.
|
||||
if ((everything || layer >= CollisionLayer.AfterDynamicWaves) &&
|
||||
layers.HasFlag(CollisionLayers.DynamicWaves) && _Water.DynamicWavesLod.Enabled)
|
||||
{
|
||||
if (layers.HasFlag(CollisionLayers.DynamicWaves) && _Water.DynamicWavesLod.Enabled)
|
||||
{
|
||||
return _DynamicWaves;
|
||||
}
|
||||
return _DynamicWaves;
|
||||
}
|
||||
|
||||
// If not single layer, this is always present.
|
||||
return _AnimatedWaves;
|
||||
}
|
||||
|
||||
@@ -131,6 +132,19 @@ namespace WaveHarmonic.Crest
|
||||
_Displacement.UpdateQueries(water);
|
||||
}
|
||||
|
||||
public void SendReadBack(WaterRenderer water, CollisionLayers layers)
|
||||
{
|
||||
// Will only submit readback if there are queries.
|
||||
_AnimatedWaves.SendReadBack(water);
|
||||
_DynamicWaves.SendReadBack(water);
|
||||
_Displacement.SendReadBack(water);
|
||||
}
|
||||
|
||||
public void SendReadBack(WaterRenderer water)
|
||||
{
|
||||
_Displacement.SendReadBack(water);
|
||||
}
|
||||
|
||||
public void CleanUp()
|
||||
{
|
||||
_AnimatedWaves.CleanUp();
|
||||
@@ -143,6 +157,7 @@ namespace WaveHarmonic.Crest
|
||||
{
|
||||
public static void UpdateQueries(this ICollisionProvider self, WaterRenderer water, CollisionLayer layer) => (self as CollisionQueryWithPasses)?.UpdateQueries(water, layer);
|
||||
public static void UpdateQueries(this ICollisionProvider self, WaterRenderer water) => (self as IQueryable)?.UpdateQueries(water);
|
||||
public static void SendReadBack(this ICollisionProvider self, WaterRenderer water, CollisionLayers layer) => (self as CollisionQueryWithPasses)?.SendReadBack(water, layer);
|
||||
public static void CleanUp(this ICollisionProvider self) => (self as IQueryable)?.CleanUp();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user