Я написал код. Вот кусочек. Тут есть ошибка. Думаю Вы её заметили. Мне нужно именно вот такой способ, если такой нельзя, то хотя бы альтернативный метод.
function ShootDouble () {
yield WaitForSeconds(fireDelay);
switch (currentMode){
case 0:
canShoot = true;
break;
case 1:
if (bulletsToGo == 0){canShoot = true;}
if (gunAmmo == 0){
canShoot = false;
Reload();
}
Shoot();
bulletsToGo--;
gunAmmo--;
ShootDouble();
break;
case 2:
if (Input.GetButton ("Fire1")){
if (gunAmmo == 0){
Reload();
canShoot = false;
}
Shoot();
gunAmmo--;
ShootDouble();
}else{canShoot = true;}
break;
}
}