У меня на сцене есть калаш, на котором висит скрипт
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Ak12 : MonoBehaviour
{
private Animator anim;
[SerializeField] private int TotalAmmo = 120;
[SerializeField] private int AmmoNeedToReload = 30;
public float range = 100f;
public float FireRate = 15f;
public float NextTimeToFire = 0f;
[SerializeField] private int ammo = 30;
public Camera fpsCam;
void Start()
{
anim = GetComponent<Animator>();
}
void Update()
{
if (Input.GetButton("Fire1") && ammo > 0 && ammo != 0)
{
Shoot();
NextTimeToFire = Time.time + 1f / FireRate;
StartCoroutine(AmmoMinus());
}
if (Input.GetKey(KeyCode.R) && ammo < 30)
{
anim.SetBool("Reload", true);
}
}
private void Reload()
{
AmmoNeedToReload -= ammo;
TotalAmmo -= AmmoNeedToReload;
AmmoNeedToReload = 30;
ammo = 30;
}
private void AnimToggle()
{
anim.SetBool("Reload", false);
}
private void Shoot()
{
ammo -= 1;
RaycastHit hit;
if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
{
Debug.Log(hit.transform.name);
if(hit.transform.tag == "box")
{
hit.transform.SendMessage("TakeDamageAk12");
}
}
}
Как сделать счётчик патронов в магазине, проблема в том, что метод Shoot() вызывается много раз, из-за этого выстреливаются сразу все патроны, как сделать чтобы патроны вылетали по одному?