Nav Mesh Agent para perseguir a un clon

Estoy tratando de hacer un simulador donde unos animales tendrían que buscar comida para comérsela.

Para hacer que la encuentren y vayan hacia ella, he usado el Nav Mesh Agent pero solo me funciona para perseguir al GameObject original, no para sus clones.

Abajo dejo el código por si sirve de ayuda.


using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime;
using UnityEngine;
using UnityEngine.AI;

public class AnimalScript : MonoBehaviour
{
    public float velocity;
    public float aceleracion;
    public float angular;

    public Transform food;

    private NavMeshAgent agente;

    void Start()
    {
        agente = GetComponent<NavMeshAgent>();
        agente.speed = velocity;
        agente.angularSpeed = angular;
        agente.acceleration = aceleracion;
    }

    void Update()
    {
        agente.destination = food.position;
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Food")
        {
            Destroy(other.gameObject);
        }
    }
}

Tienes que ‘resetear’ food cuando la cloneas.

O sea, la destinacion del agente es siempre la food.position y si no cambia la referencia de ‘food’, siempre vas hacia esa.
Entonces, al hacer otra comida (y su Transform) tienes que marcarla como tarjeta (objectivo).

Algo como

public void SetTarget (Transform target) => food = target;

Al instanciar el clon, llamas a SetTarget y le pasas la transform del clon.

void CreateClone () 
{
Gameobject comidaClon = Instantiate (deliciousFoodPrefab, somewhere, with some rotation) as GameObject;

&AnimalScript.SetTarget (comidaClon.transform);
}