I'm making a top down shooter and I'm using a modified version of the RocketLauncher.js script to act like a machine gun. (I'm doing this because I'm adding a trail to the bullet and it wouldn't look right with the MachineGun.js) I put magazines in the rocket launcher script (Now GunScript) and I made it so if the ammo runs out, if there is a magazine left, it'll add more ammo. It's all working fine but now I want there to be a break after there's no more ammo... Here's my primitive version of the script.
var projectile : Rigidbody;
var initialSpeed = 20.0;
var reloadTime = 0.5;
var ammoCount = 20;
var ammoInMagazine = 20;
var magazineCount = 5.0;
private var lastShot = -10.0;
function Update() {
if (ammoCount == 0 && magazineCount > 1) {
ammoCount = ammoInMagazine;
magazineCount--;
}
}
function Fire () {
// Did the time exceed the reload time?
if (Time.time > reloadTime + lastShot && ammoCount > 0) {
// create a new projectile, use the same position and rotation as the Launcher.
var instantiatedProjectile : Rigidbody = Instantiate (projectile, transform.position, transform.rotation);
// Give it an initial forward velocity. The direction is along the z-axis of the missile launcher's transform.
instantiatedProjectile.velocity = transform.TransformDirection(Vector3 (0, 0, initialSpeed));
// Ignore collisions between the missile and the character controller
Physics.IgnoreCollision(instantiatedProjectile.collider, transform.root.collider);
lastShot = Time.time;
ammoCount--;
}
}
It's primitive but it works :)
Again, I want it to reload after the magazine runs out of bullets.