public void FlashyAnimateTo(Vector3 endPosition, string rushTrigger, float additionalScaling) { Vector3 startPosition = this.transform.position; Vector3 oldScale = this.transform.localScale; Vector3 newScale = new Vector3(this.transform.localScale.x + additionalScaling, this.transform.localScale.y + additionalScaling, this.transform.localScale.z); this.AnimatorTrigger(rushTrigger); int duplicateSpriteCount = 0; this.DoEveryFrameForDuration(GameConstants.Instance.kFlashyAttackTransitionDuration, (float time, float duration) => { float percentageComplete = Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, time, duration); float oldZ = this.transform.position.z; this.transform.position = Vector3.Lerp(startPosition, endPosition, percentageComplete); this.transform.position = this.transform.position.SetZ(oldZ); this.transform.localScale = Vector3.Lerp(oldScale, newScale, percentageComplete); if ((int)(time / GameConstants.Instance.kDuplicateSpriteDelay) > duplicateSpriteCount) { this.SpawnDuplicateSprite(); duplicateSpriteCount++; } }, () => { this.transform.position = endPosition; this.transform.localScale = newScale; this.AnimatorIdle(); this.OnFinishedFlashyAnimating.Invoke(); }); }
private void AnimateColorLerp(Color currentColor, Color nextColor) { this.DoEveryFrameForDuration(0.01f, (float time, float duration) => { float percentageComplete = Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, time, duration); this._renderer.color = Color.Lerp(currentColor, nextColor, percentageComplete); }, () => { this._renderer.color = nextColor; }); }
protected IEnumerator AnimateScoreFontSize(float time) { int originalFontSize = this._scoreText.fontSize; for (float elapsedTime = 0; elapsedTime <= time; elapsedTime += Time.deltaTime) { this._scoreText.fontSize = (int)Easers.Ease(EaseType.QuadOut, originalFontSize, this._targetScoreFontSize, elapsedTime, time); yield return(new WaitForEndOfFrame()); } }
public void TestEase() { var v = new Vector2(-2, -2); TestSteps(Tween.TweenTo(Vector2.Zero, Vector2.One, 2, x => v = x, Easers.EInSine, Cancellable.Null), null, () => v, new [] { Vector2.Zero, Vector2.One * Easers.EInSine(0.5f), Vector2.One, }, VecEq); }
// PRAGMA MARK - Public public void SetSprite(Sprite sprite) { this._renderer.sprite = sprite; this.DoEveryFrameForDuration(this._fadeTime, (float time, float duration) => { float percentageComplete = Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, time, duration); this._renderer.color = new Color(1.0f, 1.0f, 1.0f, 1.0f - percentageComplete); }, () => { this._renderer.color = Color.clear; Toolbox.GetInstance <ObjectPoolManager>().Recycle(this.gameObject); }); }
public void FadeAway() { this.DoEveryFrameForDuration(0.2f, (float time, float duration) => { float percentageComplete = Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, time, duration); this._renderer.color = new Color(this._renderer.color.r, this._renderer.color.g, this._renderer.color.b, Mathf.Max(1.0f - percentageComplete, 0.0f)); }, () => { GameObject.Destroy(this.gameObject); }); }
protected IEnumerator MoveBetweenPositions(Transform t, Vector2 startPosition, Vector2 endPosition, float time, Action callback = default(Action)) { t.localPosition = startPosition; for (float elapsedTime = 0; elapsedTime <= time; elapsedTime += Time.deltaTime) { t.localPosition = Vector2.Lerp(startPosition, endPosition, Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, elapsedTime, time)); yield return(new WaitForEndOfFrame()); } if (callback != null) { callback(); } }
protected IEnumerator ShakeHelper(float magnitude, float duration, EaseType easeType) { Vector3 offset; for (float time = 0.0f; time < duration; time += Time.deltaTime) { float currentMagnitude = Easers.Ease(easeType, magnitude, 0.0f, time, duration); Vector3 transformedRight = transform.rotation * Vector3.right; Vector3 transformedUp = transform.rotation * Vector3.up; offset = (transformedRight * Random.Range(-currentMagnitude, currentMagnitude)) + (transformedUp * Random.Range(-currentMagnitude, currentMagnitude)); transform.position += offset; yield return(new WaitForEndOfFrame()); transform.position -= offset; } }
protected IEnumerator MoveBetweenPositions(Vector2 startPosition, Vector2 endPosition, float time, Action callback) { this.transform.localPosition = startPosition; for (float elapsedTime = 0;; elapsedTime += Time.deltaTime) { this.transform.localPosition = Vector2.Lerp(startPosition, endPosition, Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, elapsedTime, time)); if (elapsedTime >= time) { break; } yield return(new WaitForEndOfFrame()); } callback(); }