Update() not working on clones

Hi everyone,

Im new to Unity and this is my first post. Please can somebody help me out here, I’ve searched for similiar faults but found none.

I’ve created a very basic prefab (lets call it enemy), which is meant to spawn and track the player objects position and launch projectiles at the player as player moves around. This works fine if I drop it in manually, however when I instantiate the clones they fail to track the player. Instead, upon spawning they immediately face towards the player objects spawn position and continue launching projectiles in that direction, regardless of any moves the player object makes.

Please can somebody take a look and tell me where I’m going wrong, I’ve spent a considerable amount of time trying but I’m staring at a wall now. Thanks.

EnemyController1.cs is placed on an ‘EnemyGameController’ object
TrackPlayer.cs is placed on the ‘enemy’ object

I’ve ensured ‘target’ on TrackPlayer.cs is set as my player object and this appears on the clones as well

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyController1 : MonoBehaviour
{
    public GameObject hazards;
    public Vector3 spawnValues;
    public int hazardCount;

    public float spawnWait;
    public float startWait;


    void Start()
    {
        StartCoroutine(SpawnWave());
    }

    IEnumerator SpawnWave()
    {
        yield return new WaitForSeconds(spawnWait);
        
        while(true)
        {
            for(int i =0; i<hazardCount; i++)
            {
                GameObject hazard = hazards;

               
                Vector3 spawnPosition = new Vector3(Random.Range(-spawnValues.x, spawnValues.x), 
                    spawnValues.y, spawnValues.z);

                Instantiate(hazard, spawnPosition, hazards.transform.rotation);
               
                yield return new WaitForSeconds(spawnWait); 
            }
        }
    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TrackPlayer : MonoBehaviour
{
    public Transform target;

    void Update()
    {
        transform.LookAt(target);
    }
}

Ok no worries. I’ve decided to use an alternate way of spawning my ‘enemy’ since there are’nt many of them. I created multiple objects and enabled/ disabled them using a method and time intervals. Thanks.