En la conferencia anterior, normalizamos el movimiento de nuestros cerdos.
Ahora vamos a impedir que pasen por ese lugar de la meta.
Eso significa que tenemos que comprobar dónde están en relación con la ubicación de la meta, cada bucle.
Así que volvamos a nuestro guión.
Dentro de nuestra actualización de la luz, estamos calculando la velocidad y luego también estamos actualizando
la posición ahora el objetivo real o la dirección de la meta.
Eso no cambiará, pero la duración de esto sí lo hará a medida que nos acerquemos más y más a la meta real.
Así que tenemos que calcular esto una y otra vez dentro de nuestra actualización, y especialmente si nuestro
objetivo se mueve.
Es posible que quieras que tu personaje siga actualizando eso también.
Así que vamos a copiar esto y ponerlo aquí.
De hecho, podemos quitar eso de la parada porque no lo necesitaremos ahí arriba.
Bien, veamos cómo se comporta esto.
Guárdalo.
Vuelve a entrar en Unity Pulsa el play y echemos un vistazo.
Así que los cerdos van hacia la meta y luego tienes los cerdos tipo de sacudidas en esa ubicación de la meta.
Entonces, ¿qué es lo que realmente ocurre aquí?
Bueno, déjame volver al código de nuevo.
Vamos a enfatizarlo un poco.
Actualicemos esta velocidad, hagámosla de cinco, e intentaremos que sobrepasen la posición de ese objetivo.
Así que vamos a pulsar el play.
Y ahora se van a ir.
Tiene un poco más de nerviosismo allí.
Lo que ocurre en realidad es que los cerdos lo sobrepasan y en realidad lo sobrepasan y entonces en el siguiente
bucle calcula una nueva dirección.
Así que en realidad van por aquí y luego reciben una nueva dirección para volver por aquí y luego por aquí,
luego por aquí.
Así que eso es lo que te da ese nerviosismo allí.
En lugar de eso, queremos decir, bueno, si has llegado a la meta o te has acercado lo suficiente a la meta, entonces termina
con ella.
Básicamente, deja de calcular y actualízate para estar realmente a punto.
La ubicación de la meta es realmente difícil, por lo que se necesita algún tipo de valor de umbral que es una especie de cerca es lo
suficientemente bueno.
Entremos aquí y echemos un vistazo.
Así que el cálculo de nuestra dirección antes de actualizar la posición de los cerdos de nuevo, vamos a decir si la dirección
y vamos a trabajar lo lejos que estamos de la meta.
Así que recuerda que la dirección es el vector desde el cerdo hasta la meta.
Si obtenemos la longitud de ese vector, entonces sabemos a qué distancia estamos y eso es phan con una magnitud de punto.
Así que esa es la distancia real entre el cerdo y la meta.
Ahora, si esa magnitud, digamos que es mayor que dos.
Si es mayor que dos, entonces no hay problema en recalcular.
La velocidad y seguir avanzando hacia ella.
Y esto realmente se detendrá una vez que se encuentre dentro de ese círculo de dos.
Así que guarda esto.
Volvamos a la unidad y probemos esto.
Así que vamos a pulsar el play y los cerdos se acercarán lo suficiente.
Y cuando se acercan a dos, se detienen.
Así que puedes ver que ahora sabes cómo es una distancia de dos.
Si quieres que se acerquen un poco más, entonces puedes, por supuesto, disminuir ese valor de umbral.
Así que si alguna vez tienes un personaje de la IA que se acerca a una ubicación de la meta y Jeter de ida y vuelta entre ella o, posiblemente,
incluso va en círculos que podríamos ver un poco más adelante en este curso, significa que usted
está tratando de conseguir el carácter de conseguir exactamente en este lugar.
Y con los cálculos que se están realizando actualmente, nunca va a suceder.
Así que ten en cuenta que eso es lo que quieres hacer en este caso.
Lo bueno de la forma en que hemos hecho este código es que siempre va a estar comprobando la dirección
y la magnitud de las direcciones.
Eso significa que si mueves esa ubicación de la meta, entonces puedes hacer que los cerdos la sigan porque
seguirá actualizando esta dirección.
Así que vamos a añadir algo a la meta que hará que se mueva.
Lo que voy a hacer es sustituir esa meta, ese objeto, por otra cosa.
Bien, ahora vamos a entrar en nuestra escena.
Quieres entrar en tu carpeta Easy Primitives prefab y encontrar algo aquí que al cerdo
le guste seguir.
Así que estoy pensando en algo como un aldeano.
Bien, aquí está mi aldeano.
Arrastramos y soltamos al aldeano y lo ponemos justo ahí.
Así que este aldeano tiene una dirección hacia adelante.
Eso significa que si lo dirigimos, podremos ver en qué dirección va, lo cual
es útil.
Así que la otra ubicación de la meta, vamos a deshacernos de eso.
Así que selecciónalo y elimínalo.
Y luego para nuestro cerdo queremos agarrar nuestro aldeano y sólo poner eso como el objeto de la meta por
aquí y el inspector, lo mismo con el otro cerdo porque van a seguir el mismo carácter.
Y ahora vamos a ir al nivel superior de nuestros activos y vamos a añadir otra secuencia de comandos aquí,
crear C-sharp y vamos a llamarlo Drive.
Ahora, este código, no lo estoy escribiendo desde cero.
Si has visto alguno de mis otros vídeos en los que realmente creo un script de conducción en los personajes
o coches o lo que sea que tengo, lo saco de la documentación de unity.
Así que si echas un vistazo a tu documentación y en la búsqueda, escribes input, get access y bajas al primer
ejemplo, encontrarás que hay un pedazo de script simplista para conducir un coche, que
es muy útil.
Quiero decir, creo que he estado usando esto desde Unity a partir de 2006, la versión dos de Unity por aquel entonces.
Encuentra esto y vamos a copiarlo todo.
Por cierto, esto también utiliza el antiguo sistema de entrada.
Así que vamos a volver aquí, abrir nuestra secuencia de comandos de unidad y sólo vamos a reemplazar el valor predeterminado
con ese código allí.
Y luego sólo asegúrese de que llamamos a esta unidad, a continuación, guardar, volver a la unidad y arrastrar y soltar
ese script de unidad en el aldeano en la jerarquía.
Y si quieres saber cómo funciona, no dudes en rebuscar en ese código.
Pero básicamente hay una velocidad y una velocidad de rotación y podemos mover el pueblo hacia fuera usando las teclas de flecha.
Vale, pues vamos a pulsar el play.
Las teclas de flecha laterales van a girar el personaje, como puedes ver ahí.
Y entonces podemos usar las teclas de flecha arriba y abajo.
Y ahora puedes ver que tenemos a nuestros cerdos siguiendo al pequeño granjero o aldeano, y en realidad ahora están
exactamente en la misma posición.
Así que están un poco encima del otro.
De acuerdo.
También es posible que quieras que los personajes se giren hacia donde van ahora.
En realidad, esto se hace de forma muy sencilla.
Si entramos en nuestro movimiento después de que hemos calculado la dirección que vamos a ir aquí, vamos
a decir que este punto de transformación mirada y vamos a mirar a nuestra posición de la meta.
Así que copia eso, ponlo ahí.
Y eso, básicamente, hará que el personaje mire al objetivo.
Así que salva que por la mirada lo que quiero decir es que si volvemos aquí y sólo haga clic en uno de estos
cerdos, usted va a encontrar que el sistema de ejes para el cerdo aquí tomó su dirección hacia adelante, que es lo que
se supone que está mirando hacia es este eje azul, que es el eje Z.
Así que la mayoría de los juegos y paquetes de modelado y cosas por el estilo tienen el eje Z como el eje orientado hacia adelante.
Así que lo que se hace es girar este eje, este cerdo, para que el eje azul esté orientado hacia donde
tiene que ir.
Así que si ahora pulsamos el play, podrás verlos realmente como se ven en este momento.
Por supuesto, podrías multiplicar esos cerdos y tener un montón de ellos siguiendo al granjero.
Pero vamos a terminar este vídeo con un pequeño reto.
Mira a ver si puedes dar a los cerdos diferentes velocidades para que no viajen a la misma velocidad unos de otros.
Así que ponle pausa al video ahora, y dale una oportunidad.
Y cuando volvamos, revisaré una solución contigo.
Bienvenido de nuevo.
¿Cómo se ha hecho para darles una velocidad diferente?
Entremos en el guión de la película.
Así que tenemos la velocidad aquí establecida en cinco para variar eso para diferentes cerdos.
Podemos poner una velocidad de flotación pública allí y luego si usted guarda eso y volver a la unidad, seleccione el cerdo.
Y luego en el inspector puedes darles diferentes velocidades.
Así que este tipo de aquí podría ser tres, por ejemplo.
Así que va a ser mucho más lento.
Pulsemos el play.
Y ahora movemos al granjero y verás que ese otro cerdo se mueve mucho más rápido porque
alcanza al pequeño granjero aldeano con bastante rapidez.
De acuerdo.
Este es un primer vistazo a algunos vectores.
Cuando volvamos en el próximo vídeo, vamos a profundizar un poco más en el cálculo de la distancia entre puntos,
que ya hemos empezado a hacer con nuestro valor de magnitud.
Pero vamos a ver más de cerca a Pitágoras.