Проблема с созданием кнопки стрельбы

При нажатии кнопки, пуля создаётся только один раз за сцену, а дальше нет.

Пробовал делать метод Shoot(), который видно в скрипте, который вызывался при нажатии кнопки:


public void Shoot()
{
    
    if (timeBtwShots <= 0)
    {  
            Instantiate(bullet, shotPoint.position, transform.rotation);
            timeBtwShots = starTimeBtwShots;
    }
    else
    {
        timeBtwShots -= Time.deltaTime;
    }
}

Ответы (2 шт):

Автор решения: Nikichka_Dev

Вообщем, я понял как это сделать, рассказываю всем кто не понял: Строку timeBtwShots -= Time.deltaTime; мы вставляем метод Update, чтобы время обновлялось каждую секунду.

private void Update()
{
    timeBtwShots -= Time.deltaTime;
}

public void Shoot()
{
    
    if (timeBtwShots <= 0)
    {  
       Instantiate(bullet, shotPoint.position, transform.rotation);
       timeBtwShots = starTimeBtwShots;
    }
   
}

}

→ Ссылка
Автор решения: Yaroslav
[DisallowMultipleComponent]

public class Gun : MonoBehaviour
{
    [SerializeField] private float _shootDelay = 2f;
    [Space]
    [SerializeField] private Transform _shootPoint;
    [SerializeField] private GameObject _bulletTempalte;
    private bool _delay;

    public void Shoot ()
    {
        if (_delay == false)
        {
            Instantiate(_bulletTempalte, _shootPoint.position, _shootPoint.rotation);
            StartCoroutine(ShootDelayCoroutine());
        }
    }

    private IEnumerator ShootDelayCoroutine ()
    {
        _delay = true;
        yield return new WaitForSeconds(_shootDelay);
        _delay = false;
    }
}
→ Ссылка