IEnumerator TextButtonClick(ButtonPad buttonInstance) { float speed = 2.0f; float targetScale = .09f; float vel = 0f; while (buttonInstance.transform.parent.transform.localScale.x > .1) { Vector3 newScale = buttonInstance.transform.parent.transform.localScale; newScale.x = Mathf.SmoothDamp(newScale.x, targetScale, ref vel, speed * Time.deltaTime); newScale.y = Mathf.SmoothDamp(newScale.y, targetScale, ref vel, speed * Time.deltaTime); buttonInstance.transform.parent.transform.localScale = newScale; yield return(null); } //stopping all coroutines to prevent errors in case hover or exit animation still running (for now) StopAllCoroutines(); buttonInstance.trigger(); }