Проблема с созданием кнопки стрельбы
При нажатии кнопки, пуля создаётся только один раз за сцену, а дальше нет.
Пробовал делать метод 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;
}
}