transform.LookAt Wont Work with Prefab As Target - HELP Att: Video

I have a simple transform.LookAt(target);

And the target being a simple prefab that is initiated multiple times throughout the game.

But it doesn't like the idea of either:

It being initiated, or that there are multiples as the script simply doesn't look at the prefab. I've tested the target being the Player Controller, and that works fine.

Why wont it work for a prefab.

The reason I ask is because this LookAt will eventually shoot the prefabs.

Help ...

http://olliejones.com/StrategyHelp.mov

EDIT---

or better yet, have the look at activate when the prefab comes into a certain distance. And if two of the same prefabs where to come into distance, then only pick one to shoot (or look at for now)

Initiate Script (Spawn):

function Start() 
{
    //prefebIndex = 0;
   // Enemy.transform.name = "Enemy" + prefebIndex;
    //prefebIndex++;

    while (true) 
    {
        if(Controller.EnemyRemaining > 0)
        {
            if(randomActive == true)
            {
                yield WaitForSeconds(Random.Range(1,4));
            }
            else if(randomActive == false)
            {
                yield WaitForSeconds(timeDelay);
            }
            Instantiate( Enemy, transform.position, Quaternion.identity );
            Controller.EnemyRemaining --;
            //Enemy.transform.name = "Enemy" + prefebIndex;
            //prefebIndex++;
        }
        else if(Controller.EnemyRemaining <= 0)
        {

            return;
        }
    }
}

Smooth Look At:

var target : Transform;
var damping = 6.0;
var smooth = true;

@script AddComponentMenu("Camera-Control/Smooth Look At")

function LateUpdate () 
{
    if (target) 
    {

        if (smooth)
        {
            // Look at and dampen the rotation
            var rotation = Quaternion.LookRotation(target.position - transform.position);
            transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping);
        }
        else
        {
            // Just lookat
            transform.LookAt(target);
        }
    }
}

function Start () {
    // Make the rigid body not change rotation
    if (rigidbody)
        rigidbody.freezeRotation = true;
}

You need to cache a reference to the newly created (clone) of the prefab, then assign the target to it.

Edit: Okay, I'll add some more info on this.

In the top of the script (not in a function), declare a variable like this:

private var newEnemy:Transform;

then add these lines in place of where you instantiate the enemy now:

newEnemy = (Instantiate(Enemy, transform.position, transform.rotation)).transform;
transform.LookAt(newEnemy);