/// <summary>
    /// Función que detecta la colisión con una presa para de esa manera ser consumida la planta. Además se añade 1 al número
    /// de plantas comidas por la presa en cuestión.
    /// </summary>
    /// <param name="other"></param>
    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Presa")
        {
            consumirse = true;

            Presa presa = other.gameObject.GetComponent <Presa>();
            presa.AddComida();
        }
    }
    /// <summary>
    /// Función que crea las primeras presas.
    /// </summary>
    public void PrimeraGeneracionPresas()
    {
        presas = new List <Presa>();

        for (int i = 0; i < numeroPresas; i++)
        {
            Presa presa = new Presa();
            presa = Instantiate(prefabPresa);
            presa.Initialize();
            presas.Add(presa);
        }
    }
    /// <summary>
    /// Función que crea la siguiente generación de presas, añadiendo los hijos correspondientes.
    /// </summary>
    public void SiguienteGeneracionPresas()
    {
        // Creamos una nuevas lista para guardar las siguiente generación
        siguientesPresas = new List <Presa>();


        // Se comprueba cual de las presas no han muerto
        for (int i = 0, j = 0; i < presas.Count; i++)
        {
            if (presas[i].accionActual != AccionesAnimal.Morir)
            {
                siguientesPresas.Add(presas[i]);
                j++;
            }
        }

        // Se destruyen las presas anteriores
        while (presas.Count > 0)
        {
            Destroy(presas[0].gameObject);
            presas.RemoveAt(0);
        }

        // Se copia siguientesPresas en la lista de presas
        presas = new List <Presa>(siguientesPresas);

        // Se vacia la lista de siguientesPresas
        for (int i = 0; i < siguientesPresas.Count; i++)
        {
            Destroy(siguientesPresas[i].gameObject);
        }

        siguientesPresas = null;

        hijosAñadidosPresas = 0;

        for (int i = 0; i < presas.Count - hijosAñadidosPresas; i++)
        {
            // Creo un cromosoma nuevo
            float[] nuevoCromosoma = new float[Mundo.instance.statsNamesPresa.Length];

            for (int j = 0; j < nuevoCromosoma.Length; j++)
            {
                nuevoCromosoma[j] = presas[i].cromosomas[j];
            }

            // Compruebo si ha tenido hijos
            if (presas[i].GetPlantasComidas() > 1)
            {
                Presa presaHijo = new Presa();

                // Creo un cromosoma nuevo
                float[] nuevoCromosomaHijo = new float[Mundo.instance.statsNamesPresa.Length];

                for (int j = 0; j < nuevoCromosomaHijo.Length; j++)
                {
                    // RECOMBINACION NORMAL DE UNO DE LOS PADRES
                    if (UnityEngine.Random.value > ratioMutacion)
                    {
                        nuevoCromosomaHijo[j] = presas[i].cromosomas[j];
                    }
                    else // MUTACION
                    {
                        nuevoCromosomaHijo[j] = UnityEngine.Random.Range(0, Mundo.instance.maxRange);
                    }
                }

                presas.Add(presaHijo);
                presas[presas.Count - 1] = Instantiate(prefabPresa);
                presas[presas.Count - 1].Initialize(nuevoCromosomaHijo);
                hijosAñadidosPresas++;
            }

            // Creo una nueva presa y la inicializo con el nuevo cromosoma.
            presas[i] = Instantiate(prefabPresa);
            presas[i].Initialize(nuevoCromosoma);
        }
    }