GetComponent, gameObject.tag vs gameObject.layer

Im currently using a raycast system to detect touches on game objects. I cant figure out why I can grab a component from an object if I reference the object by the tag, but I cant if I reference by the layer.

This works :

if(hit.collider.gameObject.tag == "object_controller") 
{ 
 	var objScript : object_controller = hit.collider.gameObject.GetComponent(object_controller);	
    objScript.Kill();    
}

This does not :

if(hit.collider.gameObject.layer == 9) 
{ 
 	var objScript : object_controller = hit.collider.gameObject.GetComponent(object_controller);	
    objScript.Kill();    
}

Can anyone enlighten me?

modify your layer check to this (below) and methinks you’ll got the answer 8)

if(hit.collider.gameObject.layer == 9) 
{ 
    var objScript : object_controller = hit.collider.gameObject.GetComponent(object_controller);  
    objScript.Kill();    
}
else
{
    Debug.Log("my layer is: " + hit.collider.gameObject.layer.ToString());
}