diff --git a/Engine.Systems/Tween/Tween.cs b/Engine.Systems/Tween/Tween.cs index 0642edf..bea0c59 100644 --- a/Engine.Systems/Tween/Tween.cs +++ b/Engine.Systems/Tween/Tween.cs @@ -27,8 +27,16 @@ internal class Tween : ITween field = value; switch (value) { - case TweenState.Completed: OnCompleted?.Invoke(this); OnEnded?.Invoke(this); break; - case TweenState.Cancelled: OnCancelled?.Invoke(this); OnEnded?.Invoke(this); break; + case TweenState.Completed: + OnCompleted?.Invoke(this); + if (State == TweenState.Completed) + OnEnded?.Invoke(this); + break; + case TweenState.Cancelled: + OnCancelled?.Invoke(this); + if (State == TweenState.Cancelled) + OnEnded?.Invoke(this); + break; case TweenState.Paused: OnPaused?.Invoke(this); break; case TweenState.Playing: if (previousState == TweenState.Idle)