Bienvenido de nuevo, Mis desarrolladores de juegos favoritos.
Como puedes ver ahora tenemos tres enemigos, x2, muy aterradores.
Déjame maximizar en el juego.
Y tenemos un mal con no sólo tener puertas,
también tenemos enemigos,
que son tres esqueletos.
Estos esqueletos son los tipos a los que necesitamos matar para poder abrir las puertas.
Pero por ahora lo que hacemos es simplemente atraparlos en el acto usando una lista.
Por lo que me he maximizado en el juego,
no debí haber hecho eso.
Ahora voy a correr de nuevo.
Si miro en las habitaciones y hoy ahora,
puedo ver que aquí tengo a los enemigos y tengo las dos puertas,
pero la magia es que los atrapamos sin agregarlos manualmente.
puede ver que sucede automáticamente usando filtros de contacto,
usando listas, usando muchas cosas geniales.
Entonces, no perdamos más tiempo y empecemos.
Ah, caso.
Por lo que ahora tenemos las puertas que se cierran.
Es hora de empezar a abrirlos.
¿ Cómo abrimos las puertas?
El modo en que les vamos a permitir que se abran es cuando nos
deshacemos de todos los enemigos que tenemos en el mapa actual.
Entonces lo que vamos a hacer es
crear una variable que primero se asegurará de que el, todas
las puertas se abran cuando todos los enemigos sean asesinados.
A lo mejor sólo el nivel que creaste no tiene que matar a todos los enemigos.
A lo mejor es un nivel para la tienda,
por ejemplo, igual que teníamos en Hades.
Entonces por eso vamos a añadir esta variable.
Entonces, empecemos.
Entonces aquí tenemos al controlador enemigo.
Como pueden ver, lo he organizado todo.
De todos modos, no perdamos tiempo porque en el gerente equivocado,
vamos a sumar el volumen aquí mismo.
Y eso es abrir o abrir puertas.
Cuando y yo es dy.
Ahí vas. Eso lo guardamos.
Volveremos aquí y nos aseguraremos de que esta, esta habitación en
particular se abra de verdad cuando los enemigos mueran.
Está bien, genial.
Lo siguiente que tenemos que hacer es conseguir una referencia de todos los enemigos.
Bueno, ¿cómo hacemos eso?
Tendremos obviamente múltiples enemigos.
Eso significa que lo más probable es que tengamos que conseguir algún tipo de matriz.
Pero, ¿por qué no queremos usar una matriz?
Porque cuando tenemos una matriz,
¿cómo voy a demostrar esto?
Entonces por ejemplo, puedes ver aquí mismo,
si hago clic en una de esas matrices aquí mismo,
y si uso el menos,
esto simplemente quitará la puerta de nuestro juego.
En realidad no elimina todo el elemento.
Por lo que todavía tenemos dos puertas aquí mismo,
pero falta una de ellas.
Ahora cuando se trata de la puerta,
esto no es un problema enorme porque ya sabemos que sólo tendremos dos puertas.
No los vamos a contar.
No vamos a deshacernos de ellos.
Están ahí, son estáticos,
no se están moviendo.
Pero cuando se trata de los enemigos,
lo que queremos es conseguir una referencia a todos los enemigos en el mapa.
Y luego a medida que lentamente los matamos uno por uno,
los vamos a contar.
Y si encontramos que todos han desaparecido,
entonces abriremos la puerta.
Y esto causará un problema cuando estemos usando una tarifa.
Por eso vamos a usar algo un poco mejor,
que es la lista.
Entonces una lista es igual que una matriz.
Representa una lista de objetos fuertemente tipada.
Y por cierto, estas son las documentaciones de Microsoft para el C-sharp,
no la documentación de Unity,
pero es más o menos lo mismo.
Podrás encontrar ejemplos,
puedes encontrar lo que quieras y enumera
lo grandioso de ellos ya que son mucho mejores en ordenar,
son mucho mejores en ordenar y manipular.
Entonces lo que podemos hacer es a medida que muere cada enemigo,
podemos sacarlo de la lista sin preocuparnos de ningún tipo de error,
la lista se ajustará por sí misma.
Por lo que se explicó, te dejaré encontrar la lista,
la clase, encontrar la documentación de este.
Y te voy a volver a emitir el reto igual que el último reto que conozco.
Tan molesto cuando tienes que hacer algo por ti mismo sin ver lo que hice primero.
Pero es hora de crecer,
hora de convertirse en verdaderos desarrolladores de juegos,
buscar problemas y hacer cosas que nunca antes nos habíamos encontrado.
Esta es la belleza de la misma.
Mira a través de la documentación y encuentra cómo podemos instanciar un nuevo.
Vamos a crear una lista de campos serializados.
Queremos ver la lista en el inspector.
Posteriormente, obviamente necesitamos hacerlo privado,
pero queremos comprobar si todo está funcionando.
Y finalmente, el tipo de la lista será un colisionador a D. Así que encuentra la documentación,
pasa por ella, crea una nueva lista,
que es la lista de enemigos de tipo colisionador 2D.
Te veré en sólo un rato.
De acuerdo, bienvenido de nuevo.
Entonces, ¿cómo te metiste en eso?
Espero que no estés demasiado enojado conmigo.
De todos modos, sigamos adelante y creemos un campo serializado.
Y esto va a ser una lista.
Y como puedes ver, bueno,
lo viste en el ejemplo,
solo comprobemos dos veces y veamos cómo se crea.
Por lo que puedes ver que necesita las colecciones de puntos de los sistemas,
que está justo aquí.
Oops, lo siento, que es justo aquí que nos permite crear listas.
Vayamos a ver qué tenemos aquí.
Digamos que me estoy desplazando hacia abajo,
¿cómo se crean listas, por favor?
¿ Cómo creo una lista?
¿ Dónde está? ¿Dónde está?
De acuerdo, Así que ahí tienes.
Es así como se crea una lista.
Entonces necesitamos teclear el tipo de esto que tenemos dentro de estos dos antinaturales,
lo que se llaman y decir que es igual a una nueva lista.
Entonces de vuelta aquí,
el tipo colisionador 2D,
ya te lo he dicho.
Y verás por qué es un colisionador 2D en tan solo un poco.
Entonces enemigos, y es igual a
una nueva lista de Collider a los enemigos y la cerramos con estos dos paréntesis.
Ahora, obviamente te tomó sólo un poco más de tiempo encontrarlo todo,
tal vez mirar a través de la documentación, pero eso es bueno.
Ahora puedes decir que con orgullo ese zapato mira a través
la documentación descubierta por ti mismo cómo se crean las listas,
y esto te dará mucha más confianza
a medida que avanzas por tu viaje de desarrollo de juegos.
No siempre voy a estar aquí.
A veces no voy a estar a veces no tengo tiempo para responderte.
Entonces este es un gran ejercicio.
Me encantan estos ejercicios.
Espero que no estés demasiado enojado.
Sigamos adelante. ¿Qué tenemos que hacer ahora mismo?
Tenemos que entrar a las habitaciones aquí mismo
y vamos a crear un nuevo objeto de juego vacío,
que serán los enemigos.
Y esto sostendrá a todos los enemigos que tenemos.
El enemigo esqueleto justo aquí que C necesita algo?
También el campo de tiro.
Hagámoslo un poco más pequeño para que no queremos que los enemigos nos disparen.
Sabemos que todo funciona.
Eso es bueno y vamos a hacer su salud.
Pero más pequeño, tal vez tres.
Por lo que toma tres hits, aplica los cambios.
Y yo lo voy a mover a los enemigos.
También voy a entrar a los Prefabs y añadir un par de enemigos.
Y aquí, así el enemigo,
el esqueleto agregará otro.
Aquí. Otra, tan grande.
Ahora tenemos tres esqueletos vagando por ahí que perseguirán y dispararán al jugador.
Eso lo salvaremos.
Está bien, genial.
Ahora lo siguiente que queremos hacer es que queremos conseguir el,
una referencia a todos esos enemigos y poder contarlos.
Ahora qué podemos hacer, obviamente,
como podemos seguir adelante,
seleccionar estos tres y arrástralos aquí y configurarlos manualmente.
Eso sería bueno,
eso estaría funcionando.
Pero queremos tener una forma más dinámica de acceder a estos enemigos.
Una de esas formas dinámicas es utilizar objetos de hallazgo de tipo,
donde pasamos por todos los objetos y los encontramos todos.
Esto también es una buena idea,
pero es muy gravador para el sistema.
Tienes que pasar por todos los elementos,
empezando desde la cámara y hacia abajo hasta encontrar
a todos estos enemigos de tipo u objeto de tipo.
No vamos a hacer eso.
En cambio, vamos a hacer algo mucho más complicado al principio,
pero mucho más efectivo y menos gravar al sistema.
Y es una gran manera de aprender algo muy nuevo.
Y ya tenemos la,
digamos la infraestructura para eso establecida al tener los
colisionadores de los enemigos y el colisionador de la habitación.
Entonces, ¿de qué estoy hablando?
Acabas de verlo.
Es el colisionador, Colisionador de superposición 2D.
¿ Qué hace esto?
Se necesita un filtro de contacto,
que veremos en tan solo un poco.
Y nos da los resultados de todos los objetos 2D del colisionador.
Por lo que un filtro de contacto utilizado para filtrar los resultados de manera diferente.
¿ A qué nos referimos con eso?
Nos referimos a que tenemos el colisionador de la habitación justo aquí.
Entonces tenemos el colisionador,
tenemos todos los objetos dentro.
No queremos atrapar al jugador,
por ejemplo, sólo nos interesan los esqueletos.
Por lo que necesitamos agregar este filtro de contacto que entenderá cómo se usa.
Pero sigamos adelante.
Entonces filtro de contacto y el resultado,
ese resultado, Es la matriz.
Para recibir los resultados.
Podemos usar una matriz,
podemos usar también una lista.
No te preocupes por eso.
Sigamos uno.
¿ Qué necesitamos?
Por lo que devuelve el número de resultados si queremos un retorno,
y luego vamos a revisar qué es un filtro de contacto.
Entonces te estoy dando todas las formas de cómo creamos.
Entonces honestamente, no tenía ni idea de lo que era un filtro de contacto.
Esta es la primera vez que me encontré cuando estaba creando este juego,
pesar de que he tenido mucha experiencia en desarrollo de juegos,
esta es realmente la primera vez que realmente lo usé en el,
así que fui y lo busqué.
De acuerdo, Así que mira, tenemos un montón de propiedades.
Y si vuelves atrás,
aquí podemos ver los resultados de manera diferente.
¿ Y qué más tenemos?
Tenemos algo llamado máscara bi capa.
Sé lo que es la máscara de capa,
así que tengo que mirar y me encuentro.
Set Máscara de Capa, excelente.
Esto establece la máscara de capa en función de algún tipo de proporcionado un parámetro o algo así.
Genial. Doy click en él,
veo filtro de contacto, máscara de capa.
Le doy una máscara de capa.
Sé cuál es la máscara de capa y te mostraré cómo la vamos a usar.
Pero de todos modos, estos son los pasos que incluso yo doy a veces.
Entonces no pienses eso NUEVO,
no lo recuerdes todo y debes saber,
no, debes hacer tu propia investigación.
Siempre mira a través de la documentación y ahora sigamos adelante y empecemos.
Entonces voy a volver aquí y voy a crear, en primer lugar,
un colisionador privado 2D,
y este será el colisionador de habitaciones.
Guarda eso.
Y luego un, otro contacto privado
filtrado a D y va a ser el filtro de contacto a D.
Simplemente me quedaré el nombre tal como está.
Entonces ahora y empezar,
¿qué vamos a hacer?
Bueno, en primer lugar, necesitamos una referencia al colisionador de habitaciones.
Por lo que colisionador de habitación es igual para obtener componentes.
Y va a ser el colisionador 2D.
Genial, Así que ahora tenemos una referencia al colisionador en la habitación.
Lo siguiente que queremos hacer es que queremos obtener el filtro de contacto 2D.
Y vamos a poner la máscara de capa igual que vimos.
Y qué dijimos necesitamos dentro del conjunto Máscara de Capa,
necesitamos la Máscara de Capa.
¿ Cómo obtenemos la máscara de capa?
Bueno, sabemos qué capa es,
pero ¿cuál es la máscara?
El mascarilla es una forma de dejarnos decir convertir,
de entender cuáles son las capas.
Entonces, ¿qué podemos hacer?
Podemos usar algo llamado la máscara de capa.
Y podemos usar un método aquí dentro que diga conseguir la máscara.
¿ Y cómo conseguimos la máscara?
Podemos conseguirlo realmente comprar el nombre de las capas.
Genial, por lo que ahora tenemos acceso al nombre de la capa.
Y qué hace la capa, es el enemigo.
Y debido a que esto es una referencia de cuerda,
asegura de que el zapato haya macetas correctamente,
ve incluso copiarlo si tienes que hacerlo.
Pero lo que está pasando aquí,
tenemos el nombre de la capa.
Utilizamos la máscara get,
que es un método disponible en la biblioteca de máscaras de capas.
Utilizamos esta máscara de capa entera y colocamos la máscara de capa en el filtro de contacto.
Complicado, lo sé.
Y ahora usamos el colisionador de habitaciones, pensamiento solapamiento colisionador.
Y aquí dentro, ¿qué necesitábamos?
Necesitamos el filtro compacto al,
¿cuáles son los resultados?
¿ Dónde queremos lanzar nuestros resultados?
Y puedes ver justo aquí la flecha,
si haces clic en ella, ahí vas.
Puedes añadirlo a una lista o podemos añadirlo a un colisionador 2D en base a lo que le demos.
Entonces si le damos una matriz aquí,
entonces este resultado será una matriz.
Pero debido a que actualmente le estamos dando una lista,
esto será como una lista, guarde ese registro.
Entonces otra vez, pasemos por esto una vez más.
Creamos un filtro de contacto.
Entendimos qué filtros de contacto son a través de las documentaciones de la unidad.
Hemos añadido un colisionador 2D.
Eso es muy sencillo.
Obtuvimos una referencia usando el componente get.
Ya sabemos cómo hacemos eso.
Accedemos al filtro de contacto.
Utilizamos un método llamado Set Layer Mask.
Este conjunto Máscara de capa requiere una,
algo llamado máscara de capa,
no sólo una capa, una máscara de capa.
Entonces lo que hacemos,
buscamos obtener Máscara de Capa.
Y esto en realidad será un reto a la vista para ti.
Ve a buscar Máscara de capa,
consigue Máscara de capa y ponte de pie cómo encontramos este método.
Por lo que este es un proceso completamente diferente.
Utilizamos la máscara get layer,
que forma parte de la máscara de capa y la máscara de capa de motor Unity,
y utilizamos el nombre de la capa enemiga.
Entonces, ¿ahora qué pasa en cuanto empiece este gerente de sala?
En primer lugar, en Trigger Enter se encuentra al enemigo.
En segundo lugar, mira a través de todos los enemigos que ya están aquí.
Y como ya he dicho, hay muchas formas de atrapar a los enemigos.
Ahí hay hallazgo objetos de tipo.
Podemos haber utilizado el emprendedor enter,
pero pensé que esta es una gran oportunidad para aprender sobre listas.
Aprende sobre el filtro de contacto en nunca se sabe cuándo.
ocasiones podría encontrarse en una situación y
programación en la que simplemente no puede hacerlo sin un filtro de contacto.
Entonces guarde todo eso.
Volvemos a Unidad y veamos a nuestros enemigos ahora en cuanto corremos,
deberíamos ver aquí a los tres enemigos.
Esperemos que ejecute el juego.
Ahí vamos. Excelente.
Y puedes ver que tenemos todos los colisionadores de esqueleto uno,
esqueleto a y esqueleto tres,
o como quieras llamarlo.
Excelente, Tenemos una referencia a ellos.
Entonces ahora el siguiente paso es matarlos a todos
y abrir las puertas con azul que en el siguiente video,
asegúrate de completar tus cambios.
Asegúrate de dejar una reseña y te veré en el siguiente video.