Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a un video totalmente nuevo.
Y en este video,
cuando ejecutemos nuestro juego,
cuando hacemos clic en el enemigo,
notarás que aquí tiene una variable extra,
que es la salud enemiga y phi dispararle con un par de balas.
Observe cómo su salud se deteriora de 100 a 40.
Y si le sigo disparando de 40 a 0 y desaparece porque está muerto.
Entonces vamos a aprender muchas cosas en este video.
Ponte tus gorras de pensamiento y empecemos.
Ah, está bien, Así que ahora es hora de empezar a dañar a nuestros enemigos usando el método.
Entonces lo primero que vamos a hacer es que vamos a crear una forma
agregar salud o de quitarle salud a nuestro enemigo.
Entonces voy a entrar al controlador enemigo.
Y aquí, Abramos Visual Studio.
Y voy a crear una variable entera que representará la salud del enemigo.
¿ Por qué es un entero?
Bueno, porque queremos mantener las cosas simples.
No queremos que sea una carroza.
Entonces lo voy a agregar justo aquí bajo la velocidad.
Entonces vamos a crear un campo serializado el cual será de tipo entero.
Y se va a llamar la Salud.
Y voy a fijarlo para que sea 100 al principio,
para que nunca tengamos la Salud a 0.
Voy a volver a mirar al inspector y ver cómo se ve eso.
Y ahora ellos, bien, genial.
Por lo que ahora puedes ver que tengo la opción aquí dentro de cambiar la salud de nuestro enemigo.
Ahora, ¿cómo vamos a asegurarnos de que cada vez que el enemigo sea golpeado,
eliminemos una factura de salud.
Vamos a crear un método para hacerlo. ¿Cuáles son los métodos?
Bueno, ya me has visto crear métodos.
El actualización es un método.
Empezamos como método y también el gizmo seleccionar como método.
Pero profundizemos un poco más en la estructura real de un método y veamos cómo lo usamos.
Entonces déjame ponerme mi láser,
y esta es la estructura del método.
Por lo que es similar a la forma en que creamos variables en que tiene una accesibilidad.
Entonces un tipo de acceso, ¿qué es?
¿ Es un privado, un público?
No podemos convertirlo en un campo serializado,
pero podemos crear ya sea un público,
lo que significa que podemos acceder a este método desde cualquier parte de nuestros scripts,
en cualquier otro guion.
Si es privado, sólo podemos acceder a él dentro de la clase donde estamos usando.
Entonces tenemos el tipo de devolución.
Por ejemplo, devoluciones nulas, nada.
¿ Qué es un tipo de devolución?
medida que avanzamos por el curso,
entenderás todos los diferentes tipos de retornos.
Pero lo que esto significa es que en realidad podemos devolver un valor de este método.
Si no devuelve nada,
eso significa que está vacío.
Entonces, por ejemplo, déjame mostrarte aquí.
Esto es un vacío porque no devolvemos ningún valor.
No esperamos que se devuelva ningún valor
de este método más adelante cuando sí tengamos un método que devuelve algo,
may, me aseguraré de señalarlo por ti.
A continuación, tenemos el nombre del método.
Por lo general, siempre que quieras nombrar un método,
tienes que nombrarlo por lo que realmente hace este método.
Y puedes notar cómo creamos el nombre de un método.
Es, a diferencia de las variables fueron la primera palabra tiene que estar siempre en la clase inferior,
o la primera letra de la primera palabra tiene que ser de clase inferior.
En un nombre de método,
todas las palabras dentro del nombre del método tienen que ser mayúsculas.
Por lo que se puede ver que agregando velocidad,
por lo que este método es un privado,
por lo que sólo lo usamos en un vacío de clase.
No devuelve nada y su nombre está agregando velocidad.
Eso significa que agrega velocidad a algunos tipos de objetos.
¿ Y cuáles son los paréntesis al final?
Si bien estos se llaman el parámetro,
parámetro significa que podemos enviar un cierto valor a ese método.
Y puede usarlo con el fin de hacer cálculos o cualquier cosa que quiera.
Demostraremos cómo funciona todo esto en el método que dañará a nuestros enemigos.
Ya basta de hablar, empecemos.
Voy a abrir Visual Studio y aquí,
y voy a crear un método dentro del controlador enemigo.
Desplazaré hacia abajo en la Tierra, la actualización.
Y aquí voy a crear un método para dañar al enemigo.
Primero, ¿qué necesito que sea?
¿ Tiene que ser un privado?
Entonces sólo puedo usarlo dentro de aquí y el controlador enemigo,
¿ o tiene que ser público?
Eso significa que puedo acceder desde cualquier lugar.
Bueno, lo más probable es que necesite que sea público porque
quiero que las balas dañen al enemigo cada vez que golpeen al enemigo.
De lo que va a ser un vacío público,
y voy a llamarlo el enemigo del daño.
Y es un vacío porque no necesitamos devolver nada del enemigo daño.
Todo lo que necesitamos hacer es quitar un poco de salud que ya tenemos.
Y aquí, por lo que la salud enemiga.
Y cambiemos esto o no,
te voy a mostrar un truco muy cool y solo quedate mordido.
De todos modos, sigamos con nuestro enfoque principal.
También quiero enviarles un parámetro de tipo entero,
que va a ser el daño.
Ellos pueden.
Entonces ahora lo que puedo hacer es poder acceder a la salud y puedo quitar de ella.
Perdón, los daños tomados.
Entonces, ¿ahora qué pasa?
Ya sabes lo que significa el signo menos.
Eso significa que quitamos de la salud los daños tomados.
Y por último, tenemos que asegurarnos de que si la salud es menor o igual a 0.
Eso significa que solo agregas un poco de espacios aquí.
Eso significa que nuestro enemigo ha muerto y quiero destruir el objeto del juego.
De acuerdo, Así que veamos en otro momento a esto.
Y antes de hacer eso, creo que el nombre salud de una variable no es tan específico.
Creo que necesitamos cambiarlo a la salud de los enemigos.
Entonces, ¿qué puedo hacer aquí?
Puedo cambiar el nombre aquí por salud enemiga.
De acuerdo, y luego desplácese por aquí y cambie estos dos justo aquí.
Pero esto es un poco engorroso,
sobre todo si hemos usado la salud tal vez 10 veces en nuestro código.
Entonces, ¿cómo podemos evitar esto?
Simplemente haz doble clic en salud,
haz clic en Control R, R.
Y ahora verás que puedes agregar esto.
Entonces voy a llamar a esto la salud enemiga.
Voy a pegarle a Enter.
Y si me desplazo hacia abajo,
verás que la salud enemiga ha cambiado.
Entonces como recordatorio,
controla o nuestro click en él dos veces,
mantén pulsado Control R.
Y podrás cambiar el nombre de la variable y cambiarlo en todas partes y el juego.
Ahora, lo siguiente que vamos a hacer es que realmente vamos a llamar a este método.
¿ Y de dónde lo llamamos?
Tenemos que ir al controlador de balas.
Y déjame encontrar el controlador de bala por aquí en alguna parte.
¿ Dónde está en los guiones?
En las balas, en la ley terrible a controlador.
Y aquí dentro cuando activemos algo así que golpeamos a un objeto,
lo que vamos a hacer,
vamos a dejarme sólo quitar esta línea de aquí.
Por lo que instanciamos el impacto y vamos a seguir adelante y acceder a la colisión.
Entonces, ¿cuál es la colisión aquí mismo?
Como puede ver, este es un parámetro que se está enviando al método en Trigger Enter.
¿ Cuál es la colisión? Es el objeto con el que acabamos de chocar.
Entonces, por ejemplo, si golpeamos un muro,
la colisión sería la pared que hemos golpeado.
Y en nuestro caso,
la colisión será el enemigo al que hayamos golpeado.
Y voy a conseguir el componente, discúlpame.
Entonces voy a conseguir el componente que está en
esta colisión y va a ser el controlador enemigo.
Y en el controlador enemigo,
porque he hecho público este método aquí dentro,
puedo acceder aquí mismo,
que es el daño y la amina.
¿ Y qué debo enviar a este enemigo daño?
Se puede ver ahora mismo, aquí,
no hay argumentos,
por lo que necesitamos dar el daño tomado.
Te darás cuenta de todo esto aquí mismo.
Entonces le voy a mandar la cantidad de daños.
Pero no hemos creado una cantidad de daño.
Entonces vamos a seguir adelante y crearlo aquí.
Por lo que la bala también tendrá una variable que será un entero.
Y eso sólo va a copiar esto,
que va a ser la cantidad de daños y voy a ponerlo en torno a 10.
Entonces, ¿qué está pasando aquí?
Cada vez que la bala choca con algo,
obtenemos la información de esa colisión.
Obtenemos la colisión,
obtenemos el componente del controlador enemigo,
y accedemos al método enemigo de daño ahí.
Le enviamos la cantidad de daños.
Vamos al controlador enemigo.
Es público, todo lo que obtenemos la salud enemiga,
quitamos los dañados tomados.
El daño tomado como obviamente el monto del daño justo aquí.
Y luego comprobamos si la salud es menor o igual a 0.
Si lo es, destruimos el objeto del juego porque el enemigo lo ha hecho.
Entonces. Guardemos todo eso.
Y vamos a seguir adelante y probarlo en Unidad.
Entonces voy a hacer clic en el enemigo,
asegurarme de que veamos la salud enemiga.
Voy a ejecutar el código.
Voy a tratar de disparar a nuestro enemigo.
Por lo que lo mostré hasta que las balas se ponen tercero.
Veamos la salud enemiga.
Se hizo.
Ahí lo tienes. Se convirtió en 90.
Déjame tratar de dispararle dos veces ahora su salud debería llegar a ser 70 aquí mismo.
Guárdate ese 80, 70, ahí tienes.
El enemigo está siendo dañado.
Y si sigo disparándole con todas mis balas,
notarás que 70 se convierte en 0 y el enemigo desaparece.
Pero ten en cuenta lo que pasa ahora mismo.
En primer lugar, nuestras balas seguían volando por todas partes.
¿ Por qué sucedió eso?
Déjenme alejar.
Se puede ver que las balas no interactuaron con el muro.
No fueron destruidos.
Y tenemos un error aquí mismo.
Y déjame abrir la ventana de la consola para que podamos ver cuál es el problema. Ahí lo tienes.
Se puede ver que tenemos por errores para
las cuatro balas de aquí que interactuaron con el muro.
Y hagamos doble clic en esta flecha y veamos qué pasó.
Ah, para que veas que nos lleva a la línea que tenemos
un error y déjame mostrarte esto una vez más. Haga doble clic.
Estamos en esta línea.
Se puede ver aquí mismo.
Y debido a que esta línea no se ejecutó correctamente,
la destrucción no se ejecutó adecuadamente solucionable, Se mantiene volando.
Esto es sólo una nota al margen.
De todos modos, ¿cuál es el problema?
El problema es que estamos accediendo a la colisión, ¿verdad?
El choque debe ser el enemigo porque estamos tratando de acceder al controlador del NMI.
Pero el problema es que en este momento acabamos de golpear un muro,
y este muro no tiene el guión enemigo en él. Interesante.
Entonces, ¿cómo vamos a salvar esto?
Bueno, por suerte tenemos una herramienta muy, muy poderosa.
Déjame hablar de esto aquí mismo.
Permítanme aclarar todos estos errores desagradables.
Tenemos una herramienta extremadamente poderosa de la que aún no hemos hablado.
Si entro en las capas de edición, como vimos,
tenemos las capas de las capas de física,
tenemos las capas de clasificación.
También tenemos esta etiqueta aquí mismo.
Y lo que podemos hacer,
podemos etiquetar al enemigo,
fue una etiqueta enemiga.
Y entonces cada vez que estamos tratando de comprobar por el controlador enemigo, antes de hacerlo,
podemos crear una condición que compruebe si la etiqueta en la colisión es un enemigo,
entonces podemos seguir adelante y dañarla.
Si no es un enemigo o el objeto que encajamos no está etiquetado como enemigo,
entonces no podemos acceder al controlador enemigo.
Entonces déjame volver aquí.
Déjame mostrarte dónde podemos crear daga.
Simplemente podemos hacer clic en este botón más,
nombrar la etiqueta, lo que sea que queramos,
guarde eso, volver al enemigo.
Y puedes ver aquí mismo que podemos etiquetarlo con una etiqueta que acabamos de crear.
Déjenme volver atrás.
Elimina la pila aquí mismo.
Sí. Está bien.
También porque el enemigo fue etiquetado que puede sin etiquetar.
No estoy seguro de por qué lo hice.
Entonces ahí lo tienes. Se eliminará de esta lista la próxima vez que se cargue el proyecto.
De acuerdo, Entonces esto fue un gran error,
pero no se preocupe por ello porque ahora es el momento de
un reto y tu reto es etiquetar a nuestros enemigos.
Entonces, antes que nada,
crea una etiqueta enemiga tal como te mostré.
Asegúrate de etiquetar al enemigo dentro de la etiqueta enemiga.
Antes de conseguir el controlador enemigo,
comprueba una condición si el objeto de colisión, para
ya sepas cuál es el objeto de colisión,
tiene la etiqueta enemiga sobre él.
Y te recomiendo que pases por Google,
encuentres una forma de cómo podemos comprobar la etiqueta y comparar la etiqueta.
Si quieres seguir por ti mismo, adelante y hazlo.
Si no, te daré una pequeña pista.
Puedes usar algo llamado the.com DAG,
ir a comprobarlo en perros de Unity,
usar tu información, hacer tu propia investigación.
Hay otra forma de comprobar la etiqueta.
Sí te recomiendo que lo encuentres.
Pausa el video ahora mismo y ve a hacer las compras.
Hey, bienvenido de nuevo.
¿ Cómo te pusiste con eso?
Por lo que esta es la unidad de documentaciones, component.com, declaración DAG.
Devuelve un bool,
sea cierto o no o ningún bool público.
También la etiqueta compare es un bool y la vamos
a utilizar en nuestra declaración if porque como sabemos,
una condición en la declaración if es una verdadera o falsa.
Por lo que también podemos ver cómo se usa y se usa en el Trigger Enter,
qué conveniente para nosotros.
Entonces usamos este otro,
lo llamaron otro,
lo tenemos como colisión.
Es lo mismo, no se preocupe por eso.
Entonces veamos cómo podemos hacer con aquí dentro.
Por lo que antes de comprobar si hay una colisión,
he añadido una pestaña aquí mismo.
Voy a ver si la colisión que acabamos de hit.com etiqueta es un enemigo.
Y antes de que hagamos eso,
debemos crear este tipo que es el enemigo. Hit Enter.
Entonces voy a asegurarme de que lo escribamos correctamente.
Entonces enemigo, y voy a etiquetar a nuestro enemigo como el enemigo.
Entonces ahora aquí,
si es un enemigo,
entonces vamos a seguir adelante y hacer la colisión y otros trucos astutos,
Este video está lleno de trucos astutos.
Si solo tienes una línea bajo la condición if,
no necesitas agregar estos corchetes aquí mismo.
Entonces si solo tienes una línea,
no necesitas agregar los corchetes si agrego otra línea.
Entonces, por ejemplo, el destructor no forma parte de la condición if.
Aunque lo tome y lo ponga aquí mismo,
aún no será parte del padecimiento.
Y si estás un poco confundido por eso, no te preocupes.
Puedes añadir tus propios corchetes.
Esto es sólo una pequeña prueba.
Incluso puedes añadir un comentario aquí para decir que esto es lo que pasa.
Entonces voy a ahorrar eso ahora.
Y sólo si la colisión una etiqueta enemiga en ella.
Bueno, llamamos al controlador enemigo y se los damos.
Vamos a probar esto.
Voy a correr el juego y voy a empezar a disparar las paredes.
Y ahí tienes, puedes ver que no tenemos errores.
Si disparo al enemigo,
entonces miraré el daño que ha sufrido el enemigo.
Ahí lo tienes. Se puede ver que está a los 40.
Le dispararé tres veces más,
por lo que se convierte en 30, 20, 10.
Y por último, le dispararé por última vez y queda destruido sin ningún error.
Entonces espero que disfruten,
espero que estén cometiendo todos los cambios que estamos haciendo.
Es muy importante.
En ocasiones estaré haciendo esto fuera del ámbito del video.
Y con eso dicho, espero que lo disfruten.
Si estas disfrutando de este curso,
por favor déjame una reseña.
Me ayuda mucho.
Hace saber a todos que este es un buen curso.
Así que asegúrate de dejarme una reseña.
Muchas gracias por ver.
Te veré en el próximo video donde estaremos haciendo
la profundidad de nuestros enemigos sea un poco más brutal.
Entonces te veré entonces.