private void AnimateScaleMultiplier() { _scaleTween?.stop(); ScaleMultiplier = 1.4f; _scaleTween = this.tween("ScaleMultiplier", 1f, 0.4f).setEaseType(EaseType.ExpoOut); _scaleTween.start(); }
public bool tick() { if (_tweenState == TweenState.Paused) { return(false); } // when we loop we clamp values between 0 and duration. this will hold the excess that we clamped off so it can be reapplied var elapsedTimeExcess = 0f; if (!_isRunningInReverse && _elapsedTime >= _duration) { elapsedTimeExcess = _elapsedTime - _duration; _elapsedTime = _duration; _tweenState = TweenState.Complete; } else if (_isRunningInReverse && _elapsedTime <= 0) { elapsedTimeExcess = 0 - _elapsedTime; _elapsedTime = 0f; _tweenState = TweenState.Complete; } // elapsed time will be negative while we are delaying the start of the tween so dont update the value if (_elapsedTime >= 0 && _elapsedTime <= _duration) { updateValue(); } // if we have a loopType and we are Complete (meaning we reached 0 or duration) handle the loop. // handleLooping will take any excess elapsedTime and factor it in and call udpateValue if necessary to keep // the tween perfectly accurate. if (_loopType != LoopType.None && _tweenState == TweenState.Complete && _loops > 0) { handleLooping(elapsedTimeExcess); } var deltaTime = _isTimeScaleIndependent ? Time.unscaledDeltaTime : Time.deltaTime; deltaTime *= _timeScale; // running in reverse? then we need to subtract deltaTime if (_isRunningInReverse) { _elapsedTime -= deltaTime; } else { _elapsedTime += deltaTime; } if (_tweenState == TweenState.Complete) { if (_completionHandler != null) { _completionHandler(this); } // if we have a nextTween add it to ZestKit so that it can start running if (_nextTween != null) { _nextTween.start(); _nextTween = null; } return(true); } return(false); }