i Created a GameObject Spawner
which creates multiple Objects the object itself is supposed to give itself a random coordinate to walk to
this is done within the update methode each created object has its own script attached to it
sadly all my objects go to the same coordinate while object a and object b should have their own coords to go to
how can i make it so that the same GameObjects made from a prefab
get their own instance of coordinates to walk to?
every object created by the spawner has this script
[SerializeField] private float EnemySpeed;
[SerializeField] private float AttackRange;
[SerializeField] private float SightRange;
[SerializeField] private GameObject Target;
[SerializeField] private GameObject MySpawnArea;
[SerializeField] private float MaxMemory = 15.0f;
private float CurrentMemory = 0.0f;
private int OrderID = 0;
[SerializeField] private float AreaSizeX;
[SerializeField] private float AreaSizeZ;
//idle is called by Update()
void Idle()
{
transform.position = Vector3.MoveTowards(transform.position, Target.transform.position, EnemySpeed * Time.deltaTime);
Vector3 newDirection = Vector3.RotateTowards(transform.forward, Target.transform.position - transform.position, EnemySpeed * Time.deltaTime, 0.0f);
transform.rotation = Quaternion.LookRotation(newDirection);
if(Vector3.Distance(new Vector3(transform.position.x, 0, transform.position.z),new Vector3(Target.transform.position.x, 0, Target.transform.position.z)) < 3.0f)
{
Target = MySpawnArea;
Target.transform.position = new Vector3(MySpawnArea.transform.position.x + Random.Range(-AreaSizeX, AreaSizeX), MySpawnArea.transform.position.y, MySpawnArea.transform.position.z + Random.Range(-AreaSizeZ, AreaSizeZ));
print(Target.transform.position);
}
}