De acuerdo.
En este vídeo, voy a proponerte un pequeño reto.
Lo que me gustaría es que mantuvierais la mecánica de persecución y ocultación como la tenemos, pero que incluyerais
ahora un alcance.
Y si el policía se encuentra fuera de una distancia de diez del ladrón, entonces el ladrón debe vagar por
ahí.
Así que déjame mostrarte eso en acción.
De acuerdo.
Así que ahora se va a esconder.
Y puedes verlo en esta vista de aquí.
Está escondido en la parte de atrás.
Y aquí viene por ahí.
Y si puedo sólo puedes ver que está entrando en Wanda.
Ahora, lo que voy a hacer es intentar que me siga hasta aquí y me quedaré cerca de él.
Así que aquí viene, siguiendo.
No quiero dar la vuelta y asustarlo.
¿De acuerdo?
Y ahora voy a ir muy rápido para salir de una distancia de diez, momento en el que
va a vagar y hacer su propia cosa.
Así que se pone a deambular.
Pero entonces, si vuelvo a acercarme así, va a decidir que necesita ir a esconderse de mí,
cosa que acaba de hacer.
Allí.
Y luego si me doy la vuelta cuando vuelva a salir para echar un vistazo.
No, simplemente se va a ir a vagar porque esa distancia es de diez, obviamente, por esa zona.
Así que mira a ver si puedes juntar eso.
Ponga el vídeo en pausa ahora.
Y cuando volvamos, te mostraré cómo lo he implementado.
Muy bien.
¿Cómo te fue con eso?
Bueno, lo primero que vas a necesitar es determinar si el policía está fuera de alcance.
Y para ello, voy a crear otro método.
Así que va a devolver un objetivo alcista en el rango.
Bueno, lo llamaremos.
Ahora, usted podría realmente pasar que a través de un rango particular si quería establecer que usted
podría tener una variable y utilizarlo para otras condiciones abajo en su actualización.
Pero no estamos haciendo eso.
Todo lo que vamos a hacer es si el vector tres puntos de distancia.
Entre esta posición de punto de transformación y la posición de punto de transformación objetivo hay menos de diez.
Entonces volveremos.
Es cierto.
Si no, volveremos.
Falso.
De acuerdo.
Así que ese es nuestro objetivo en el rango.
Ahora solo tenemos que implementarlo en nuestra actualización.
Entonces, ¿dónde vamos a ponerlo?
Bueno, si el objetivo está fuera de alcance, entonces realmente no depende de si puedes ver algo o si el objetivo
puede verte a ti.
Sólo tenemos el simple fuera de rango, por lo que realmente tiene que ser la primera cosa en su declaración if.
Así que vamos a tener, si no el objetivo en el rango, entonces lo que podemos hacer aquí es vagar y no voy a establecer un enfriamiento para ese comportamiento
en particular porque quiero que dejen de vagar inmediatamente.
Si el agente entra en el rango y pueden ir y luego esconderse y luego hacer todas estas otras cosas, ahora tenemos
que poner una más aquí.
Así que estamos comprobando si estamos fuera de rango.
Entonces queremos que el vagabundeo se produzca más o menos, por eso está arriba.
Y como lo hemos perdido con estas otras cosas, no van a tratar de sobrescribirlo si ya está
ocurriendo o si es una condición verdadera.
Y eso es todo.
Así de simple.
Sólo hemos añadido como una, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, unas diez líneas aquí
sólo para conseguirlo.
Y la mayor parte fue sólo en nuestra condición que pusimos aquí.
Así que voy a guardar eso, volver a Unity y podemos pulsar el play y probar eso con nuestro pequeño agente,
que estamos viendo para empezar.
Y así, si ahora salimos aquí, entonces se va a ir a vagar por ahí.
Y si volvemos a estar a tiro, se va a esconder, lo que no puedes ver porque está aquí ahora.
Así que tenemos ese comportamiento complejo y ahora te gustaría duplicar tu robot y crear unas cuantas versiones
de él para que puedas ver cómo es si tienes muchos agentes.
Así que sólo vamos a seleccionarlo y control D para hacer una copia, golpear la tecla W para asegurarse de que sólo puede
mover hacia fuera.
No sé cuántos queremos.
Todos los que quieras.
¿De verdad?
De acuerdo.
Y ahora vamos a pulsar el play.
Y todos van a ir a esconderse.
¿Qué?
En realidad, los que están en el extremo más alejado se han ido y han vagado.
Algunos se esconden.
Así que si llevamos al policía a estos tipos, podemos hacer que se escondan de él.
Van y se esconden detrás de ese árbol.
A ver si puedo obligarles a pasar por el otro lado y esconderse de él.
Así que viene un montón.
Están escondiendo a los policías detrás de la casa.
Y obviamente no tiene colisionadores.
Puede atravesar la casa.
Así que.
Vamos a darle la vuelta a esto, porque la mayor parte de la acción está ocurriendo en esa zona
de atrás.
Y pon al policía donde estos tipos van a ir.
Escóndete detrás de ese árbol de allí.
Y si me doy la vuelta, todos esos tipos volverán a esconderse detrás de la casa del otro
lado.
Y otros simplemente van a vagar.
Y tenemos un comportamiento bonito y complejo.
Ahora, si cojo a mi policía y lo traigo de vuelta al frente y.
Lo asustó totalmente fuera del alcance de todo el mundo, entonces todos deben ir a vagar por su cuenta.
Como se puede ver, están haciendo sus pinitos y si alguna vez se acercan
al policía que son así descubren que de repente existe.
Tal vez si vamos así, empezarán a acercarse a él y lo pondrán aquí.
Así que cuando se pongan a tiro, que por supuesto no lo harán, porque lo estoy deseando ahora mismo.
Aquí está.
Así que unos cuantos se han colado detrás de él.
Y aquí vienen unos cuantos más colándose por aquí.
Pero si me doy la vuelta, les obligaré a huir y a esconderse de mí.
Porque me he fijado en ellos.
Me gusta cómo todos tuvieron que echar un vistazo a la vuelta de la esquina para ver si todavía estaba allí.
De acuerdo.
Así que ese es otro comportamiento complejo que ahora hemos añadido allí a nuestro tipo de persecución furtiva.
Tenemos vagabundeo y puedes poner un vade si quieres poner eso en vez de esconderte, algunos podrían evadirse o algunas
veces puedes ir a esconderte.
O si no estás lo suficientemente cerca de una posición de escondite en particular, que es algo más que podrías programar, podrías
entonces entrar en el modo de evasión.
Así que si no puedes encontrar ningún lugar donde esconderte, empieza a evadir muchas posibilidades ahora que
tienes ese simple conjunto de herramientas para estos agentes.