как сделать разброс в unity рейкаст

Делаю проект на Unity, не знаю как можно сделать разброс. Вот код:

public float damage;  //урон
private float fireRate;
public float fireTick; //время между выстрелами
public float range; // дистанция
public float force; //сила пули
public ParticleSystem muzzleFlash; //пока мне не нужно
public Transform BulletSpawn; // пока мне не нужно
public AudioClip shotSFX; //звук выстрела
public AudioSource _audioSource; 

public Camera _cam; //отсюда выходит рейкаст

public  bool FireSel; //false = полуавтоматическое оружие/true = автоматическое оружие

public int ammo; //Патроны в магазине
public int ammoZapas; //Патроны в запасе
public int ammoInMagazine; //Не трогать, должно быть равно макс. числу патрон в магазине

private int bullet; //не трогать, костыль

private int timeAmmo; //Костыль, не трогать
public int MaxTimeAmmo; //Время перезарядки

void Start()
{
    
}

// Update is called once per frame
void Update()
{
    if (timeAmmo != 0) {
        timeAmmo --;
    } else {
        ammo = ammoInMagazine;
        ammoZapas -= bullet;
        bullet = 0;
        timeAmmo = -1;
    }
    if (timeAmmo == 1) {
        timeAmmo = -1;
    }
    if (ammo < ammoInMagazine) 
    {
        if(Input.GetKeyDown(KeyCode.R))
        {
            timeAmmo = MaxTimeAmmo;
        }
    }
    if (ammo >= 1) 
    {
    if (fireRate <= 0 && timeAmmo <= 0) 
        {
            if (FireSel == false) 
            {
                if (Input.GetButtonDown("Fire1")) 
                {
                    Shoot();
                }
            } else {
                if (Input.GetButton("Fire1")) 
                {
                    Shoot();
                }
            }
        } else 
        {
        fireRate--;
        timeAmmo--;
        }
    }
}

void Shoot()
{
    _audioSource.PlayOneShot(shotSFX);
    
    ammo --;
    bullet++;
    
    fireRate = fireTick;
    
    //muzzleFlash.Play();
    
    
    RaycastHit hit;
    
    if (Physics.Raycast(_cam.transform.position,_cam.transform.forward,out hit,range))
    {
        Debug.Log("Попадание" + hit.collider);
        
        if (hit.rigidbody !=null)
        {
            hit.rigidbody.AddForce(-hit.normal * force);
        }
    }
}

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