Right now I have a gun script, but I have 2 errors: 1. I have a counter on the amount of ammo, and you’re supposed to be able to shoot two shots, and then the gun automatically reloads, but it doesn’t let the second shooting anim finish, it just goes right into the reload anim. 2: Right now, the gun can shoot as many rays, and as fast as you want, but I want it to be more realistic and wait like half a second or 1 second before you’re able to shoot again (also you shouldn’t be able to shoot while you’re reloading)
Sorry about this being such a long question, but any help would be fantastic.
Thanks
#pragma strict
var sound1: AudioClip;
private var AmmoInGun : int = 2;
var Effect : Transform;
var TheDammage = 100;
var Distance = 50;
var Gun : Transform;
function Update ()
{
var hit : RaycastHit;
var ray : Ray = Camera.main.ScreenPointToRay(Vector3(Screen.width * 0.5, Screen.height * 0.5, 0));
if(Input.GetMouseButtonDown(0))
{
if (Physics.Raycast(ray, hit, Distance))
{
Shoot();
var particleClone = Instantiate(Effect, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(particleClone.gameObject, 2);
hit.transform.SendMessage("ApplyDammage", TheDammage, SendMessageOptions.DontRequireReceiver);
}
}
if(AmmoInGun == 0)
{
Shoot();
Reload();
}
if (Input.GetKeyDown(KeyCode.R))
{
Reload();
}
if (Gun.animation.isPlaying == false)
{
Gun.animation.CrossFade("Idle");
}
}
function Shoot()
{
audio.Play();
Gun.animation.CrossFade("Shoot");
AmmoInGun -=1;
}
function Reload()
{
Gun.animation.CrossFade("RELOAD");
AmmoInGun = 2;
}