private IEnumerator ProcessOpen(bool status, float targetPosition) { _opened = status; PlayerInput.AllInputBlocked = status; _targetPosition = status ? targetPosition : _closedWindowPosition; yield return(null); if (_opened) { OnConsoleOpened?.Invoke(); _commandInput.ActivateInputField(); } else { OnConsoleClosed?.Invoke(); _commandInput.DeactivateInputField(); } var min = _tf.anchorMin; var max = _tf.anchorMax; var lerpHolder = new LerpHolder(); lerpHolder.RestartLerp(min.y, _targetPosition, _positionLerpTime, true); while (!lerpHolder.IsFinished) { min.y = lerpHolder.GetLerpValue(); max.y = min.y + 1; _tf.anchorMin = min; _tf.anchorMax = max; yield return(null); } }