как сделать разброс в 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);
}
}
}