public void SwitchEvolutionStage()
    {
        switch (++_evolutionStage)
        {
        case 1:
        {
            _idleStateName  = "Caterpillar Idle";
            _blinkStateName = "Caterpillar Blink";
            _moveStateName  = "Caterpillar Move";
            break;
        }

        case 2:    // играем анимацию, дальше либо в конце её на триггер вешаем вызов SwitchEvolutionStage(), либо запускаем таймер, либо ждём инпута от плэерконтроллера или менеджера скриптов
        {
            _animator.Play("CaterpillarToCocoon");

            _screenLighting.ChangeStateToTransforming();

            _colliderToTurnOffAfterTransformation.SetActive(false);
            _colliderToTurnOnAfterTransformation.SetActive(true);

            break;
        }

        case 3:    // играем анимацию, дальше либо в конце её на триггер вешаем вызов SwitchEvolutionStage(), либо запускаем таймер, либо ждём инпута от плэерконтроллера или менеджера скриптов
        {
            _animator.Play("CocoonToButterfly");

            var collider = transform.GetComponent <BoxCollider2D>();
            collider.size   = _mothColliderSize;
            collider.offset = _mothColliderOffset;

            _screenLighting.ChangeStateToDependingOnDistanceToLight();

            break;
        }

        case 4:
        {
            _idleStateName  = "Moth Idle";
            _blinkStateName = "Moth Blink";
            _moveStateName  = "Moth Move";
            break;
        }

        default:
            break;
        }
    }