升级水插件
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user