collision between object and bullet trace is not identifying

Hello and Hi
 Here i want to identify that bullet has hit on object depending on that i want to do further work which we can perform after bullet hit...

i am using following script for creating bullet and firing it

var bulletTracePrefab : GameObject;
var rate : float = 8.0;
var velocity : Vector3;
var on : boolean = false;
var accuracy : float = 1.0; //1.0 to 0.0;

private var nextbulletTraceTime : float;

function Update () {
	accuracy = Mathf.Clamp01(accuracy);
	if (on){
		if(Time.time > nextbulletTraceTime){
			rate = Mathf.Max(rate, 1.0);
			nextbulletTraceTime = Time.time + (1.0 / rate);
			var newBulletTrace : GameObject = Instantiate(bulletTracePrefab,transform.position,transform.rotation);
			var bulletVelocity : Vector3 = newBulletTrace.GetComponent("bulletTrace").velocity;
			var badAim : float = (1-accuracy);
			badAim *= newBulletTrace.GetComponent("bulletTrace").bulletSpeed * 0.05;
			bulletVelocity += newBulletTrace.transform.right * Random.Range(-badAim,badAim);
			bulletVelocity += newBulletTrace.transform.up * Random.Range(-badAim,badAim);
			newBulletTrace.GetComponent("bulletTrace").velocity = bulletVelocity;
		}
	}
}

and i want to identify after it hits to objet

i have tried basic trial code like

#pragma strict

function Start () {

}

function Update () {
	

}

function OnCollisionEnter( hit: Collision)
{
	print("collision is working");
	print("object is "  + hit.gameObject.name);
	print("collider is " + hit.collider.name);
	
	
	if(hit.gameObject.tag == "enemy")
	{
		print("killed");
		Destroy(gameObject);
	}
}

but i am not getting the name of the colliding object…even its not getting identified that collision is occurred…
only first time collision with terrain is getting identified…

add Physic → rigidBody component to enemy