Variable modification after collision not responding.

I have applied the following code to my character and applied a box collider to the game object tagged as “Key”. The character is a standard provided character controller already built in to Unity.

using UnityEngine;
using System.Collections;

public class FPscript : MonoBehaviour {

public GameObject untitled;
float bulletImpulse = 100f;
bool test= false;


void Start (){
	
}

void OnCollisionEnter(Collision collision){

	if(collision.gameObject.tag == "Key") {
		
		test = true;
	
		Destroy(collision.gameObject);
		
	}
	
}

void Update (){
	if(test== true){
			if( Input.GetButtonDown("Fire1") ) {
				Camera camm = Camera.main;
				GameObject thebullet = (GameObject)Instantiate(untitled, camm.transform.position + camm.transform.forward, camm.transform.rotation);
		
					thebullet.rigidbody.AddForce( camm.transform.forward * bulletImpulse, ForceMode.Impulse);
		
		
	}
	}
	}
}

The problem is, upon collision, I am finding that the boolean “test” is not switching and “Key” is not disappearing, although there is an obvious collision. The character will stop at Key, but the script is not registering what happens.

Thanks. Worked beautifully.