升级水插件

This commit is contained in:
2026-01-08 22:30:55 +08:00
parent febff82d24
commit ca68084264
415 changed files with 18138 additions and 7134 deletions

View File

@@ -1,4 +1,4 @@
// Crest Water System
// Crest Water System
// Copyright © 2024 Wave Harmonic. All rights reserved.
using UnityEngine;
@@ -47,20 +47,34 @@ namespace WaveHarmonic.Crest
readonly DefaultTimeProvider _DefaultTimeProvider = new();
float _TimeInternal = 0f;
bool _FirstUpdate = true;
private protected override void OnEnable()
private protected override void Initialize()
{
base.OnEnable();
// May as well start on the same time value as unity
_TimeInternal = UnityEngine.Time.time;
base.Initialize();
_FirstUpdate = true;
}
void Update()
private protected override System.Action<WaterRenderer> OnUpdateMethod => OnUpdate;
void OnUpdate(WaterRenderer water)
{
// Use default TP delta time to update our time, because this dt works
// well in edit mode
if (!_Paused)
if (_FirstUpdate)
{
_TimeInternal = _DefaultTimeProvider.Time;
#if UNITY_EDITOR
if (!Application.isPlaying)
{
_TimeInternal += _DefaultTimeProvider.Delta;
}
#endif
_FirstUpdate = false;
}
else if (!_Paused)
{
_TimeInternal += _DefaultTimeProvider.Delta;
}
@@ -71,20 +85,17 @@ namespace WaveHarmonic.Crest
{
get
{
if (!isActiveAndEnabled)
{
return _DefaultTimeProvider.Time;
}
// Override means override
if (_OverrideTime)
{
return _Time;
}
// In edit mode, update is seldom called, so rely on the default TP
#if UNITY_EDITOR
if (!Application.isPlaying && !_Paused)
{
return _DefaultTimeProvider.Time;
}
#endif
// Otherwise use our accumulated time
return _TimeInternal;
}
@@ -92,6 +103,27 @@ namespace WaveHarmonic.Crest
// Either use override, or the default TP which works in edit mode
/// <inheritdoc/>
public override float Delta => _OverrideDeltaTime ? _DeltaTime : _DefaultTimeProvider.Delta;
public override float Delta
{
get
{
if (!isActiveAndEnabled)
{
return _DefaultTimeProvider.Delta;
}
if (_Paused)
{
return 0f;
}
if (_OverrideDeltaTime)
{
return _DeltaTime;
}
return _DefaultTimeProvider.Delta;
}
}
}
}