private IEnumerator start_updating() { Vector3 scale = transform.localScale; float start_scale = scale.x; float end_scale = _circle.get_radius(); float time = 0; while (true) { time += Time.deltaTime * _delay; float tween_scale = Mathf.Lerp(start_scale, end_scale, _curve.Evaluate(time)); scale.x = tween_scale; scale.y = tween_scale; transform.localScale = scale; if (time >= 1) { scale.x = end_scale; scale.y = end_scale; transform.localScale = scale; update_shader(); break; } yield return(null); } }