override public IEnumerator Select() { float elapsedTime = 0; float animationTime = 0.5f; while (currentState == state.Select && elapsedTime < animationTime) { float scale = PennerAnimation.BackEaseOut(elapsedTime / animationTime, 0, 1, 1); transform.localScale = pivotScale + Vector3.one * 0.25f * scale; elapsedTime += Time.unscaledDeltaTime; yield return(0); } transform.localScale = pivotScale + Vector3.one * 0.25f; while (currentState == state.Select) { yield return(0); } yield return(gameObject.DoUnscaledTween01(t => { float scale = PennerAnimation.QuadEaseIn(t, 1, -1, 1); transform.localScale = pivotScale + Vector3.one * 0.25f * scale; }, 0.1f)); }