public void Update(float deltaTime) { int count = m_Active.Count; for (int x = 0; x < count; ++x) { ITween tween = m_Active[x]; TweenProgress progress = tween.Update(deltaTime); if (progress.Finished) { m_Active.RemoveAt(x); --x; --count; } } }
public TweenProgress Update(float deltaTime) { if (m_State == ETweenState.Pending) { SetStarted(); } if (m_State == ETweenState.Started) { TweenProgress progress = OnUpdate(deltaTime); if (progress.Finished) { SetFinished(); } return(progress); } throw new InvalidOperationException(); }
public TweenProgress Update(float deltaTime) { if (m_Tweens.Count > 0) { TweenProgress progress = OnUpdate(deltaTime * Speed); if (progress.Finished) { if (m_Tweens.Count > 0) { throw new Exception(); } } if (progress.Finished) { OnFinished.Invoke(); } return(progress); } return(new TweenProgress(true, 0f)); }
protected override TweenProgress OnUpdate(float deltaTime) { TweenProgress result = new TweenProgress(true, 0f); int count = m_Tweens.Count; for (int x = count - 1; x >= 0; --x) { ITween tween = m_Tweens[x]; TweenProgress progress = tween.Update(deltaTime); if (progress.Finished) { m_Tweens.RemoveAt(x); result = new TweenProgress(m_Tweens.Count == 0, deltaTime); } else { result = new TweenProgress(false, Math.Max(result.UsedTime, progress.UsedTime)); } } return(result); }