Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a un video totalmente nuevo.
Y en éste en realidad hemos hecho que nuestros enemigos sean ligeramente estúpidos.
Entonces a pesar de que pueda disparar,
pero sólo el ligero problema es que se dispara a sí mismo,
lo cual a veces es bueno,
sobre todo si es un enemigo muy duro.
Pero en nuestro caso, lo estaremos arreglando más adelante.
Pero por ahora, todo lo que necesitas saber es que podemos
cambiar el tiempo entre tomas a, por ejemplo, tres.
Y se puede ver que se tarda tres segundos en disparar,
pero eso no lo hacemos usando un contador.
Hacemos eso usando algo llamado corutina,
que es un miedo muy duro pero en herramienta creíblemente poderosa para aprender en Unidad.
Por lo que necesito tu concentración y tu total atención.
No perdamos más tiempo y empecemos.
De acuerdo, entonces tiempo para darle a nuestro enemigo la capacidad de disparar al jugador,
o al menos atacar al jugador.
Tenemos dos tipos diferentes de ataques que vamos a implementar en nuestro juego.
Uno de ellos será el malayo,
uno de ellos estará simplemente disparando desde lejos o
lanzando la espada y el ejemplo de los esqueletos.
Pero vamos a enfocarnos más por ahora en el tiroteo desde
distancia y hacerlos ataques cuerpo a cuerpo más adelante.
A lo mejor en una sección diferente,
puede estar en la sección de jefe donde tenemos el esqueleto gigante.
De acuerdo, con eso fuera del camino,
sigamos adelante y empecemos.
El primero que vamos a hacer es que vamos a
crear un par de variables y el caso del controlador enemigo 0.
Entonces vamos a entrar al controlador enemigo.
Y aquí dentro vamos a crear un par de variables.
Entonces antes de la salpicadura de la muerte aquí mismo,
vamos a sumar ataque,
solo un común para que sepamos qué es todo y va a ser un campo serializado
de tipo booleano y va a ser un ataque cuerpo a cuerpo.
Entonces si se trata de un atacante cuerpo a cuerpo,
lo vamos a revisar en el inspector y atacará usando cuerpo a cuerpo.
Entonces vamos a crear un campos serializados,
que va a ser un objeto de juego y va a ser el proyectil enemigo.
Entonces esto es lo que el enemigo estará tirando de su mano si sí dispara.
Por último, vamos a crear un punto de transformación.
Ah, lo siento, posición de fuego.
De acuerdo, entonces ahora tenemos el proyectil.
Crearemos una posición de archivo.
Y también queremos tener un tiempo entre los disparos que hace el enemigo.
Por lo que es similar a la forma en que manejamos nuestro arma.
Por lo que el tiempo de flotación entre tomas.
Y finalmente vamos a crear un bool privado listo para disparar.
Entonces, ¿qué pasa aquí?
Cuando estamos listos para disparar, el enemigo dispara,
y cada vez que dispara y entre los disparos de tiempo se va a calcular.
Entonces lo hicimos usando,
creo el contador.
Creamos un contador donde contamos atrás el tiempo hasta que
terminamos cierta cantidad de tiempo entre tomas cuando esté terminado,
entonces podemos mostrarlo de nuevo.
Esa era una vieja manera.
Ahora vamos a usar algo llamado la co-rutina.
Por lo que antes de hacer eso y presentarles a las corutinas,
permítanme en primer lugar poner a la realidad la lista para rodar aquí.
Por lo que siempre que el enemigo empiece,
está listo para disparar y una actualización.
Vamos a seguir adelante y crear algo aquí dentro que es una condición.
Y si El atacante malayo,
o si no somos un mero atacante, no lo somos.
Cuando volvemos a poner el signo de exclamación y estamos listos para disparar.
Entonces lo que vamos a hacer es que vamos a seguir adelante
y decir eso listo para disparar como falso.
Y luego aquí dentro vamos a empezar un recubrimiento.
Entonces, ¿qué es una co-rutina?
¿ Por qué lo necesitamos aquí?
Tengamos un poco de explicación.
Entonces, ¿qué es un coltán?
Una co-rutina es un método que puede suspender la ejecución de
instrucciones hasta que se cumpla una determinada condición o ciertas condiciones.
Estas suspensiones se conocen como rendimiento.
Y en nuestro ejemplo,
estará suspendiendo el tiempo hasta que nuestro enemigo esté listo para disparar de nuevo.
Entonces volvamos a nuestro código y veamos qué significa todo eso.
Por lo que actualmente lo que tenemos,
revisamos la actualización que se llama cada fotograma individual.
Verificamos si no estamos apuntando atacante y estamos listos para disparar,
luego listos para disparar, configurados en falso.
Y por ejemplo, aquí vamos a disparar la bala.
Pero lo que queremos, al igual que teníamos en el mostrador,
queremos después de cierto tiempo poder disparar.
Nuevamente, tenemos este set en falso porque no queremos disparar a
cada marco una bala y tener gazilones de balas.
Entonces la forma en que solucionamos esto es mediante el uso de una co-rutina.
Entonces déjame solo seguir adelante y crear una coroutine aquí mismo
va a ser de tipo enumerador de ojos.
No necesitas preocuparte mucho por lo que es nuestro enumerador,
solo debes saber que es el tipo de recubrimientos.
Vamos a crear el nombre corutino como enemigo de fuego, proyectil.
Voy a abrir los corchetes y vamos a suspender el tiempo.
Entonces voy a decir ese rendimiento.
Está bien, Focus, rinde.
Eso significa que estamos suspendiendo.
Retorno. Nuevo.
Espere cuatro segundos.
Voy a abrir los corchetes.
¿ Y cuántos segundos queremos ponderar como el tiempo entre tiros?
Y después de eso, podemos seguir adelante e instanciar la bala o instanciar el proyectil,
que es el proyectil,
proyectil enemigo donde hacer instanciado en la posición cinco,
esa posición y la posición pero la estación rho.
Y entonces lo que podemos hacer es poner a la lista para volver a disparar en realidad.
Y ahora lo podemos volver a mostrar.
Complicado, ¿no?
Sé menos explicar.
Ah, y antes de que me olvide,
y aquí después de que tengamos el disparo,
iniciamos la co-rutina,
que es el proyectil enemigo lejano.
De acuerdo, ahora estás aún más confundido.
Probemos esto de nuevo y actualicemos.
¿ De qué tenemos cada actualización de fotogramas como siendo frío,
tenemos todas estas declaraciones justo aquí las cuales estaremos
convirtiendo en métodos en tan solo un poco.
Pero en lo que nos enfocamos es aquí,
si no somos un atacante cuerpo a cuerpo y estamos listos para disparar,
entonces listos para disparar,
establecidos en falso, y comenzamos un Colton.
Entonces, ¿qué pasa aquí dentro,
listo para disparar un set a falso?
Eso significa que este método o esta condición aquí mismo es falsa.
Por lo que no volvemos a disparar cada fotograma.
Por eso lo pusimos en falso.
Pero, ¿cómo lo vamos a volver a hacer realidad?
Solíamos hacer eso usando el contador.
Ahora estamos usando algo un recubrimiento.
Y así como dije,
corutina se llama Usando inicio coroutine.
Ponen el nombre aquí y lo llaman yo enumerador.
No se preocupe. No te preocupes por eso. Por ahora.
¿ Quieres ahondar más en eso? Sé mi invitado.
No tienes que saber exactamente qué significa eso.
Tenemos el proyectil enemigo lejano,
entonces tenemos esta expansión, que es el rendimiento.
Después tenemos el regreso nuevo, espera cuatro segundos.
Entonces debido a que tenemos un numerador iónico,
tenemos que devolver un nuevo peso cuatro segundos. ¿Qué hace esto?
Al igual que dice, espera una serie de segundos,
que es el tiempo entre tomas.
Y después de que espere esto,
entonces instanciamos al proyectil enemigo.
Enemigo dispara, y está listo para disparar otra vez, una y otra vez.
Entonces, ¿qué pasa aquí dentro?
En primer lugar, empezamos,
tenemos los listos para disparar a la verdad.
Deberíamos.
Es falso, ya no disparamos.
Y cuando termine el tiempo entre tomas,
lanzamos el proyectil y luego estamos listos para disparar de nuevo.
Probemos esto y veamos cómo funciona.
Voy a volver a Unidad.
Voy a ver dónde tenemos realmente nuestro cuchillo 0.
Entonces no tenemos un cuchillo.
Entonces lo que haremos es simplemente usar la bala que ya tenemos.
Por lo que en las prefabs,
tenemos los folletos de jugador.
Solo usa eso por ahora, la posición de fuego,
déjame agregar clic derecho,
crea un objeto de juego vacío.
Y lo voy a poner justo aquí,
se corren casi justo aquí.
Por lo que esta será la posición de fuego sobre el enemigo.
Nosotros le proporcionamos la posición FAR
definida entre disparos sería de 1 segundo. Eso lo salvaremos.
Y ahora vamos a asegurarnos de que no sea un, hizo un atacante.
Corremos el juego y veamos qué pasa.
Entonces ahora, ahí tienes.
Se puede ver que está instanciando la bala,
pero Se está disparando a sí mismo y a la cara.
Entonces si hago una pausa por un segundo,
se puede ver que la posición cinco,
así es como se está dirigiendo.
Y sabemos que la bala de los jugadores solo viajó en la dirección correcta.
Sé que es un poco gracioso.
Probemos esto de una manera diferente.
Pero en todo caso,
no nos preocupemos demasiado por eso por ahora porque en el siguiente video estaremos
creando balas enemigas adecuadas que en realidad van muy lejos hacia el jugador o no.
Incluso las balas crearán el proyectil,
que es el noveno del enemigo.
Lo estará tirando como el jugador y no disparándose a sí mismo.
Pero se puede ver en este momento que esto está funcionando usando el Colton.
Si hago clic atrás en el enemigo justo aquí,
se puede ver que puedo aumentar el tiempo entre disparos a 2.
Entonces ahora cada dos segundos tenemos este ataque.
Entonces espero que hayan disfrutado el video.
Sé que el mecánico de tiro no es perfecto,
pero como dije en el siguiente video,
estaremos creando mejores balas.
Espero que estén cometiendo todos sus cambios.
Y en el siguiente video estaremos haciendo unas balas enemigas adecuadas,
gentiles, o como quieras llamarlo.
Entonces te veré entonces.