private void Update()
    {
        if (suck_timer.GetTime() > suck_time && state == MushroomCanonState.MC_SUCK)
        {
            rotation_timer.Start();
            state = MushroomCanonState.MC_ROTATE;

            rotation_dir      = GetRandomRotDir();
            ia_rotation_speed = Random.Range(0.1f, 0.3f);

            animator.SetBool("suck", false);
        }

        if (rotation_timer.GetTime() > rotation_time && state == MushroomCanonState.MC_ROTATE)
        {
            Shoot();

            shoot_timer.Start();
            state = MushroomCanonState.MC_SHOOT;

            animator.SetBool("suck", false);
        }

        if (shoot_timer.GetTime() > shoot_time && state == MushroomCanonState.MC_SHOOT)
        {
            suck_timer.Start();
            state = MushroomCanonState.MC_SUCK;

            animator.SetBool("suck", true);
        }
    }
    public void SetToShoot(GameObject go)
    {
        if (to_shoot == null && go.tag == "player" && state == MushroomCanonState.MC_SUCK)
        {
            to_shoot = go;

            rotation_timer.Start();
            state = MushroomCanonState.MC_ROTATE;
        }
    }
 private void Start()
 {
     suck_timer.Start();
     state        = MushroomCanonState.MC_SUCK;
     rotation_dir = GetRandomRotDir();
 }