He mencionado las reglas de flocado al principio de esta sección, pero vamos a repasarlas de nuevo en detalle.
Se desplazan hacia la posición media del grupo, se alinean con la dirección media del grupo y evitan aglomerarse
con otros miembros del grupo.
Para acercarse a la posición media del grupo hay que tomar todas las posiciones de los miembros individuales,
sumarlas y dividirlas por el número del grupo.
A continuación, podemos calcular dónde se encuentra un individuo en relación con la ubicación media y hacer que gire
hacia ella para alinearse con el rumbo medio del grupo.
Sumamos todas las rúbricas de los individuos y las dividimos por el tamaño del grupo.
Esto proporciona un vector medio para que los individuos intenten alinear su movimiento.
Para evitar a los vecinos, una persona debe ser consciente de dónde están los vecinos y luego alejarse de ellos.
A continuación, para calcular un nuevo rumbo y un individuo, se suman el vector para moverse hacia
el centro de un grupo, el vector para alinearse con el rumbo del grupo y el vector para alejarse de un vecino.
Antes de empezar a añadir estas reglas en nuestro script de Flock, vamos a añadir algunas variables más que puedes
cambiar en el inspector para modificar el comportamiento de los peces.
Así que en nuestro gestor de rebaños, vamos a añadir dos cosas.
En primer lugar, queremos otra gama.
Así que voy a copiar esto y ponerlo aquí.
Ahora, este rango estará entre uno y diez y se va a llamar distancia de vecinos.
Y queremos usar una distancia de vecindad porque los peces van a reunirse con sus vecinos.
Eso significa que puedes establecer esto, que sólo respetarán las reglas con los peces que están cerca de ellos e ignorarán
los peces que están lejos.
Porque en realidad no quiero estar rebañando esos peces en particular que están en la distancia.
Así que tendremos una distancia vecina y luego copiaremos esto y lo pondremos aquí abajo y vamos a añadir una velocidad
de rotación, así como la rapidez con la que el pez puede girar en el lugar con el fin de mantenerse al día con la
bandada.
De acuerdo.
Y lo fijaremos entre cero y cinco.
Por supuesto, el cero probablemente no es un buen valor para tener porque los peces no van a girar en absoluto
si tienen un giro de cero.
Así que vamos a ponerlo en uno en su lugar.
Bien, guardemos eso.
Y de vuelta en nuestro script de Flock, vamos a añadir dentro de la actualización y aplicar las reglas que no hemos escrito todavía.
Pero este método aquí va a girar el pez básicamente hacia la dirección en la que
debe viajar.
Y entonces vamos a empujar el pescado hacia adelante a lo largo de aquí.
Bien, entonces debajo de la actualización, escribiremos nuestras reglas de aplicación.
Así que esto será un vacío, aplicar las reglas.
Y luego dentro de aquí vamos a tener array de objetos de juego.
Objetos de juego.
Ahora, eso va a ser todos los peces que están de vuelta en el gerente.
Así que esto será joss igual al gerente de la manada, punto m punto todos los peces.
Bien, entonces el vector tres para calcular el centro v, que es el vector de flotación al centro del grupo, y que va a ser igual inicialmente
a un vector 3. 0.
Entonces queremos el vector tres para evitar, llamémoslo V evitar vector para evitar es igual al vector 3. 0 y luego ponerlo a
cero.
Y luego vamos a tener la velocidad de flotación G.
Así que esta es nuestra velocidad de grupo, que es igual a 0. 01 F por defecto, nuestro flotador n distancia que es nuestra distancia de los vecinos
y luego int tamaño del grupo o que será el tamaño de los peces que están dentro de esa distancia de los vecinos.
Así que ese es el grupo, su actual grupo local de peces en este momento vamos a tener un para cada objeto de juego
ir en go's.
Así que este es nuestro objeto de juego en nuestro ir por lo que es, básicamente, para cada pez en la matriz de peces o en la escuela de peces
que estamos trabajando.
Si el objeto de juego actual no es igual a este objeto de juego, que es este pez actual, porque no queremos
comparar este pez consigo mismo.
Iban a calcular la distancia hasta el siguiente pez.
Así que la distancia y la distancia es igual a la distancia vectorial de tres puntos entre la posición de la transformación de punto de ir y esta
posición de punto de transformación.
Y entonces, si ese pez que acabas de comprobar de todo el cardumen está dentro de la distancia de vecindad,
entonces lo consideraremos un vecino y va a influir en la trayectoria actual del pescador.
Por lo tanto, si la distancia NW es menor o igual a la distancia de vecinos de punto m del gestor de rebaños.
Entonces el vector al centro del grupo va a ser igual más igual a la posición de la transformación.
Así que vamos a sumar todas las posiciones de los peces que están en nuestro grupo y el tamaño de nuestro
grupo.
Aumentaremos en uno.
Así que, además, ahora si la distancia n es menor que 0. 10 o lo siento, 1. 0 f si estamos bien y cerca, entonces realmente queremos evitar
ese pez en particular.
Así que el evitar será igual a v evitar más el vector de alejamiento de ese pez en particular.
Será esta posición de punto de transformación menos la posición de punto de transformación.
De acuerdo.
Entonces tendremos floc otro floc es igual al componente go get.
Rebaño.
Así que esto es conseguir el script de rebaño en la comparación actual.
Peces Y lo que vamos a hacer con eso es conseguir que la velocidad para que podamos obtener un promedio de la velocidad del
grupo.
Así que la velocidad del grupo es igual a la velocidad G más otra bandada.
Pala de puntos.
De acuerdo.
Sí.
Después de todo esto, vamos a probar el tamaño de nuestro grupo.
Así que si el tamaño del grupo es mayor que cero, el centro V va a ser igual al centro V dividido por el tamaño del grupo.
Aquí es donde realmente estamos promediando en la parte superior.
Los sumamos todos juntos.
Y luego, después de que terminamos de sumarlos, que es nuestra v evitar ahora v centro, vamos a promediar aquí
abajo porque es sólo después de que hemos sumado todos y contados.
¿Sabemos cuántos vecinos tenemos en el grupo?
Así que la velocidad va a ser igual a la velocidad G dividida por el tamaño del grupo y entonces queremos un vector.
Tres dirección va a ser igual a nuestro centro v más lv evitar menos transformar la posición del punto.
Así que esta será nuestra nueva dirección hacia la que queremos que se dirija nuestro pez si la dirección no es igual a cero.
Así que.
Vector 3. 0.
Entonces vamos a transformar la rotación del punto es igual a la rotación del punto catalana y este slurp saturniano va a girar el pez
lentamente hacia la dirección que tiene que ir.
Por eso hemos creado antes esa velocidad de rotación.
Bien, entonces mirada catalana, dirección de rotación.
Y luego el gestor de rebaños, punto gestor de rebaños f m punto velocidad de rotación multiplicada por el tiempo punto tiempo delta.
Bien, ese es el código del rebaño, así que guárdalo.
Bien, echemos un vistazo a lo que esto va a hacer.
Así que vamos a ir a nuestro gestor de rebaños y asegurarnos de que tenemos algunos valores para todo.
Así que nuestra velocidad de rotación, vamos a hacer clic en eso para establecer a uno nuestra distancia vecina.
Hagamos eso.
Pero ahora vamos a subirlo y vamos a poner la velocidad de rotación a la mitad.
Bien, pulsemos el play y echemos un vistazo a nuestro rebaño.
Así que ahí están.
Permítanme ir a la escena para que pueda ampliarla y puedan ver el comportamiento de sus peces.
Así que en realidad están muy bien rebañados.
Ahora, cuando volvamos en la próxima conferencia, en realidad vamos a añadir un poco de variedad aquí para que podamos establecer
una ubicación de la meta y también para detener la velocidad de los peces, como se puede ver allí, que
son cada vez más rápido.
Así que nos vemos en la próxima conferencia.