Gunfire Help

I am using this code:

var projectile : GameObject; 
var speed = 50;
var fireRate = 0.11; 
private var lastShot = -10.0;

function Update () 
{ 
    if(Input.GetButtonDown("Fire1")){
        if(Time.time > fireRate+lastShot){
            clone = gameObject;
            Instantiate(projectile, transform.position, transform.rotation);
            projectile.tag = "Bullet";
            clone.gameObject.AddForce(transform.forward * speed);

            lastShot = Time.time;
        }
        Destroy(clone.Bullet, 3); 
    } 
}

And when I try to fire a bullet in the game, it says:
“UnassignedReferenceException: The variable projectile of ‘gunfire’ has not been assigned.”

What am I doing wrong?

There is three mistakes. The most important one is “clone =gameObject;”. You’re affecting the reference of the gameObject this script is attached to to the variable clone. You should do "clone = Instantiate(projectile, transform.position, transform.rotation); " instead

Secondly, You need the rigidbody to use AddForce. I don’t know why the compiler isn’t shouting at you.

Finally, you’re are destroying the clone even when it’s not instantiated, due to fireRate+lastShot timer. This might by secured by Unity, but in any cases it should be inside the scope where there is the instantiation.