Raycast is returnig hits only once per object?

So here is my problem... my raycast returns hits only once per rigidboy or collider, i want it to return hits everytime... here is my code

    function FixedUpdate () 
    {

    var hit : RaycastHit;
    Debug.DrawRay(BarrelEnd.position,BarrelEnd.forward *10, Color.green);
    if (Physics.Raycast (BarrelEnd.position, BarrelEnd.forward, hit, 100.0)) 
    {
            if(hit.rigidbody.tag == "Friendly")
            {
                print("Friendly");
            }

    }
    else 
    {
    print("Nothing");
    }
}

I am trying to get the raycast to return a value only when its hitting the ship where the turret attached(so it doesnt shoot when aiming at itself or at a friendly).

When it starts its fine (prints Nothing), it hits me its fine(prints Nothing), it hits the ship it prints friendly, but when it moves away from the ship it still prints friendly...

Been looking on the forums for days didnt find an answer.

This code seems to work for me...

private var raytest : int = 0;

function FixedUpdate () 
{

var hit : RaycastHit;
Debug.DrawRay(BarrelEnd.position,BarrelEnd.forward *100, Color.green);
if (Physics.Raycast (BarrelEnd.position, BarrelEnd.forward, hit, 100.0)) 
   {
        if(hit.rigidbody.tag != "Friendly")
        {
            raytest = 0;
        }
        if (hit.rigidbody.tag == "Friendly")
        {
        raytest = 1;
        }
   }
   else
   {
   raytest = 0;
   }
print(raytest);
}

It returns 1 when hitting a friendly and 0 when hitting anything else or nothing, and thnx for the collapse thingy

keep in mind that you have set raycast lenght to 100.0 units... if your scene is out of scale this can cause problems.. try to visualy check for raycast... insert this code to true section of raycast

Debug.DrawRay (BarrelEnd.position, BarrelEnd.forward * hit.distance, Color.red);