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; } }