En la conferencia anterior, creamos una secuencia.
Esta vez vamos a crear un selector.
Ahora, un selector es lo contrario de una secuencia.
Bueno, no del todo.
Pero una secuencia es como una declaración final donde todo tiene que ser exitoso para que el nodo real, el nodo de la secuencia
en sí mismo sea exitoso un selector es una declaración o, por lo que sólo necesita una de las
cosas para tener éxito.
Así que mientras recorre su lista de hijos, si uno falla, seguirá intentándolo hasta que llegue
al final o uno de ellos tenga éxito porque es lo único que necesita.
Ahora lo que vamos a hacer para nuestro selector es seleccionar desde la puerta delantera o la puerta trasera.
Lo primero que tenemos que hacer es que estos elementos formen parte de nuestra malla de navegación para que nos funcionen correctamente.
Porque como has visto antes, en realidad puedes pasar directamente por la puerta principal si quieres
llegar a la puerta trasera.
Así que vamos a la puerta principal y en el inspector, quiero que marque el obstáculo de la malla nav, que tendré
desactivado para hacer esta parte de la malla nav.
Ahora, también tendrás que marcar la casilla de tallado para que realmente afecte a la trayectoria del agente.
Puedes ver aquí en el inspector que esto no se está dibujando correctamente en mi pantalla.
Ahí abajo hay una casilla tallada.
Y si saco esto y lo hago un poco más grande, verás que aparece.
Marca eso.
Luego quieres ir a la puerta trasera y hacer lo mismo.
Así que asegúrate de que has activado el obstáculo de la malla naval y también has hecho clic en tallar.
De acuerdo.
Esto nos ayudará a ello.
Ahora, si volvemos a nuestro comportamiento de ladrón, podemos añadir un ir a la puerta principal también.
Así que voy a dejar esto como un desafío para usted es configurar esto para que usted tiene un ir a la puerta trasera, que
ya tendrá, pero tienes que ir a la puerta principal también.
Ponga el vídeo en pausa cuando volvamos.
Voy a repasar esos pasos por ti.
Muy bien.
¿Cómo te fue con eso?
Bueno, es sólo una cuestión de copiar lo que tienes para la puerta trasera ya allí.
Así que vamos a añadir un objeto de juego público, la puerta principal justo aquí arriba.
Entonces bajaremos y añadiremos un ir a la puerta principal.
Así que copiemos este y hagamos que vaya al frente.
A la guerra.
Y luego cambiaremos el texto.
Ve a la puerta principal y ve a la puerta principal allí también.
De acuerdo.
Así que está queriendo que, obviamente, crear ir a la puerta principal como su método.
Así que vamos a bajar aquí y sólo copiar la puerta trasera uno y poner en la puerta principal aquí.
Y luego queremos ir a la puerta principal con eso y guardar eso.
Ahora, en cuanto a la adición de estos en los nodos, todavía no tenemos un nodo selector.
Así que queremos añadir el nodo selector en algún lugar y luego poner para que seleccione, ir a la puerta delantera
o ir a la puerta trasera.
Eso significa que tenemos que crear un selector.
Así que antes de hacerlo, vamos a guardarlo.
Vuelve a cambiar a Unity.
Y antes de que me olvide de hacer esto, voy a seleccionar el ladrón y encontrar mi puerta delantera, que está aquí abajo en el
inspector y arrastrar y soltar esa puerta delantera allí para que esté listo para ir.
Bien, vamos a crear nuestro selector.
Así que crea un nuevo script en C-sharp, llámalo selector, y luego lo abriremos en el editor.
Y por supuesto, el selector va a ser un nodo.
Entonces podemos deshacernos de estos y tú puedes escribir el resto.
Y no estoy bromeando.
Este es tu reto.
Sabes cómo crear una secuencia.
Vamos a echar un vistazo a la secuencia.
Ahora la secuencia está aquí.
Y dije, es como una declaración final.
Así que todas ellas tienen que ser verdaderas o exitosas.
Todos los niños que están en orden para que el proceso en sí vuelva a ser exitoso.
Así que esto va a parar tan pronto como llegue a un éxito.
No va a pasar a ninguno de los otros niños.
El selector va a hacer una cosa similar en cuanto a empezar en el primer hijo, ejecutar el primer hijo.
Ahora, si ese hijo falla, no va a fallar el selector.
Va a pasar al siguiente niño y va a seguir pasando por los niños hasta llegar al final.
En ese momento va a decir, vale, he fallado.
Si no ha encontrado ningún hijo con éxito o tan pronto como encuentre un hijo con éxito, volverá
a ese punto.
De acuerdo.
Así que siguiendo o incluso tal vez comenzando con lo que está en la secuencia, puedes reajustar esto para crear el código del
selector.
Pongan en pausa el vídeo ahora y cuando volvamos, lo repasaré para ustedes.
De acuerdo.
Bienvenido de nuevo.
¿Cómo te fue?
¿Descubriste cómo hacerlo funcionar?
Empecemos por el principio.
En primer lugar, voy a crear un selector público y el nombre así que la cadena en venir a través de aquí y luego
vamos a crear un nombre y luego vamos a decir nombre es igual a MN.
Bueno, vamos a entrar en este proceso.
Así que va a ser un estado de anulación pública.
Proceso.
Más o menos lo mismo que el selector hasta ahora.
Vamos a deshacernos de ese retorno de la base.
Y vamos a decir aquí que el estado, el estado del niño es igual a los niños, el niño actual.
Ahora, este será el primer hijo en el proceso de la lista y va a empezar a ejecutar eso.
Ahora vamos a decir que si el estado del niño es igual al punto de estado en ejecución, entonces estamos en medio de la realización de una tarea.
Así que devolveremos el punto de estado en funcionamiento.
Si no, haremos una prueba.
Si el estado del niño es igual al punto de estado con éxito, entonces hemos terminado la selección y vamos a ir niño
actual es igual a cero.
Así que estamos volviendo al punto de partida para nosotros mismos si usamos esto de nuevo y luego devolver el punto de
estado.
El éxito.
Ahora bien, si no tiene éxito, entonces ha fracasado, obviamente.
Y queremos ir al siguiente niño.
Así que el niño actual más el plus.
Entonces diremos que si el hijo actual es mayor o igual que los hijos no cuentan, entonces queremos que el hijo actual sea
igual a cero.
Así que restablecer que una vez más y vamos a volver a fallar.
Así que fallo de estado.
De lo contrario, vamos a devolver el estado de parada de la ejecución.
Bien, entonces estamos buscando el primer hijo a través de la lista de hijos que tiene éxito.
Bien, entonces guardaremos esto.
Ahora tenemos un selector, así que podemos volver a nuestro comportamiento ladrón y añadirlo a nuestro árbol.
Muy bien.
Así que vamos a necesitar un nodo selector.
Así que debajo de estas hojas, voy a poner selector y vamos a llamarlo puerta abierta, que
será igual a un nuevo selector llamado Puerta Abierta.
Ahora la puerta abierta va a incluir ir a la puerta trasera e ir a la puerta delantera.
Así que voy a poner puerta abierta, punto, añadir niño, ir a la espalda.
La puerta.
Y puerta abierta.
Añade a un niño.
Ve a la puerta principal.
Así que en lugar ahora con este robo de añadir el niño, ir a la puerta trasera.
¿Realmente vas a añadir esta puerta abierta así?
Y cuando llegue al nodo de la puerta abierta, tendrá que elegir entre estos dos.
Ahora pasará por ellos en orden.
Así que va a ir a la puerta trasera primero y luego ir a la puerta principal porque hemos activado la puerta
delantera y la puerta trasera como obstáculos en nuestra malla, la malla de navegación nos llevará a uno de estos
lugares, pero no será capaz de continuar para llegar al diamante.
Pero eso está bien por el momento.
Ahora, para volver a la furgoneta, en realidad podríamos deshacernos de volver a la puerta porque simplemente
creará un camino para volver allí tan fácilmente como pueda.
Lo que a estas alturas significa que una de esas puertas va a estar, con suerte, abierta.
Todavía no hemos llegado a esa dinámica, pero de momento, comentémoslo y acabaremos planeando
un camino desde el diamante hasta la furgoneta.
Vamos a guardar esto, porque sólo quiero ver y mostrar sobre esto.
Las puertas trasera y delantera funcionan.
De acuerdo.
Así que el agente debe ir primero a la puerta trasera en este caso.
Así que volvamos aquí.
Presionamos el play y va a ir a la puerta trasera.
Así que usted puede ver ahora que está saltando por completo, ir allí y va a la cabeza alrededor de la
puerta trasera, no será capaz de conseguir a través de él porque es en realidad ahora un obstáculo que bloquea
el camino y dejar de jugar.
Si volvemos al código, podemos cambiarlos.
Así que pongamos primero la puerta delantera, copiemos eso y subamos aquí, pongamos eso ahí y quitemos la otra.
Guárdalo y volveremos a pulsar el play.
Y esta vez se dirigirá hacia esta puerta de aquí, como puedes ver.
Rápidamente, quiero mostrarte el comportamiento que probablemente estás recibiendo y que podrías estar cuestionando.
Vamos a pulsar el play.
Y lo que sucede aquí es que va a la puerta principal y luego lo que sucede es que va por el lado
aquí y aparentemente se queda atascado en esta pared.
Así que no es que haya intentado ir a la puerta principal y no haya podido y haya fallado y se haya ido para acá.
En realidad llegó a la puerta principal porque, según la malla de navegación, llegó a ese
lugar en particular.
Ahora, ¿qué hace después de ir con éxito a la puerta principal?
Intenta ir al diamante.
Así que este es él tratando de ir al diamante.
Pero no hay manera de entrar aquí ahora porque tenemos estos dos obstáculos de malla naval en el camino.
Pero no pasa nada porque vamos a trabajar en esto.
Así que si tienes este comportamiento, debes saber que no es él quien intenta llegar a la puerta trasera.
Fue él quien trató de continuar con su comportamiento para llegar al diamante.
Y realmente se quedó atascado.
De acuerdo.
Así que lo que está haciendo el Select es elegir una de esas cosas.
Ahora no puede ver lo que sucede si uno de ellos está bloqueado en el momento y no puede pasar
y en realidad tiene que ir entonces a la siguiente en la lista de niños de selección.
Así que volveremos en la próxima conferencia y trabajaremos en esa parte.