protected override bool OnUpdate(float deltaTime) { elapsed_ += deltaTime; var p = 1f; if (duration_ > 0) { p = Mathf.Clamp01(elapsed_ / duration_); } var easedP = (easing_ != null) ? easing_(p) : Easings.QuadInOut(p); var curValue = Lerp(startValue_, finalValue_, easedP); UpdateValue(curValue); return(p >= 1f); }
protected override bool OnUpdate(float deltaTime) { if (duration_ <= 0f || vibrato_ <= 0f) { return(true); } elapsed_ += deltaTime; var p = Mathf.Clamp01(elapsed_ / duration_); var easedP = (easing_ != null) ? easing_(p) : Easings.QuadOut(p); var curStrength = strength_ * (1 - easedP); var height = Mathf.Sin(vibrato_ * easedP * Mathf.PI); var iteration = (int)(vibrato_ * easedP); var dir = new Vector3(dirX_[iteration % dirX_.Length], dirY_[iteration % dirY_.Length], dirZ_[iteration % dirZ_.Length]); curStrength.x *= dir.x * height; curStrength.y *= dir.y * height; curStrength.z *= dir.z * height; UpdateValue(baseValue_ + curStrength); return(p >= 1f); }