void Update() { float opTime = Time.time - mStartTime; opTime *= TimeScale; float val; switch (Operation) { case GrowOp: FixEaseFunction(GrowEaseFunction); val = GrowEaseFunction.Evaluate(opTime); mScaleMultiplier = ChartCommon.SmoothLerp(mStartValue, GrowMultiplier, val); if (CheckAnimationEnded(opTime, GrowEaseFunction)) { Operation = NoOp; mScaleMultiplier = GrowMultiplier; } break; case ShrinkOp: FixEaseFunction(ShrinkEaseFunction); val = ShrinkEaseFunction.Evaluate(opTime); mScaleMultiplier = ChartCommon.SmoothLerp(mStartValue, 1f, val); if (CheckAnimationEnded(opTime, ShrinkEaseFunction)) { Operation = NoOp; mScaleMultiplier = 1f; } break; case GrowShrinkOp: FixEaseFunction(GrowEaseFunction); val = GrowEaseFunction.Evaluate(opTime); mScaleMultiplier = ChartCommon.SmoothLerp(mStartValue, GrowMultiplier, val); if (CheckAnimationEnded(opTime, GrowEaseFunction)) { mScaleMultiplier = GrowMultiplier; Shrink(); } break; } }