protected override void Operation(float percentage) { Vector3 calculatedValue = TweenUtilities.LinearInterpolate(_start, EndValue, percentage); _valueUpdatedCallback(calculatedValue); }
protected override void Operation(float percentage) { float calculatedValue = TweenUtilities.LinearInterpolate(_start, EndValue, percentage); _target.alpha = calculatedValue; }
protected override void Operation(float percentage) { Vector3 calculatedValue = TweenUtilities.LinearInterpolate(_start, EndValue, percentage); _target.anchoredPosition = calculatedValue; }
protected override void Operation(float percentage) { float calculatedValue = TweenUtilities.LinearInterpolate(_start, EndValue, percentage); _target.SetInt(_propertyName, (int)calculatedValue); }
/// <summary> /// Used internally to update the tween and report status to the main system. /// </summary> public bool Tick() { //stop where we are: if (Status == Tween.TweenStatus.Stopped) { return(false); } //rewind operation and stop: if (Status == Tween.TweenStatus.Canceled) { Operation(0); Percentage = 0; return(false); } //fast forward operation and stop: if (Status == Tween.TweenStatus.Finished) { Operation(1); Percentage = 1; if (CompleteCallback != null) { CompleteCallback(); } return(false); } float progress = 0.0f; //calculate: if (ObeyTimescale) { elapsedTime += Time.deltaTime; } else { elapsedTime += Time.unscaledDeltaTime; } progress = Math.Max(elapsedTime, 0f); //percentage: float percentage = Mathf.Min(progress / Duration, 1); //delayed? if (percentage == 0 && Status != Tween.TweenStatus.Delayed) { Status = Tween.TweenStatus.Delayed; } //running? if (percentage > 0 && Status == Tween.TweenStatus.Delayed) { Tween.Stop(targetInstanceID, tweenType); if (SetStartValue()) { if (StartCallback != null) { StartCallback(); } Status = Tween.TweenStatus.Running; } else { return(false); } } //evaluate: float curveValue = percentage; //using a curve? if (Curve != null && CurveKeys.Length > 0) { curveValue = TweenUtilities.EvaluateCurve(Curve, percentage); } //perform operation with minimal overhead of a try/catch to account for anything that has been destroyed while tweening: if (Status == Tween.TweenStatus.Running) { try { //Debug.Log("Operacion "); Operation(curveValue); Percentage = curveValue; } catch (Exception ex) { //Debug.Log("Error al ejecutar " + ex.Message); return(false); } } //Debug.Log("Estado del tween " + Status + " valor de curva " + curveValue + " Porcentaje " + Percentage); //tween complete: if (percentage == 1) { if (CompleteCallback != null) { CompleteCallback(); } switch (LoopType) { case Tween.LoopType.Loop: Loop(); break; case Tween.LoopType.PingPong: PingPong(); break; default: Status = Tween.TweenStatus.Finished; return(false); } } //tell system we are still have work to do: return(true); }
protected override void Operation(float percentage) { Quaternion calculatedValue = Quaternion.Euler(TweenUtilities.LinearInterpolateRotational(_start, EndValue, percentage)); _target.localRotation = calculatedValue; }
protected override void Operation(float percentage) { Color calculatedValue = TweenUtilities.LinearInterpolate(_start, EndValue, percentage); _target.backgroundColor = calculatedValue; }