Bienvenidos de nuevo mis compañeros desarrolladores de juegos a un nuevo video extremadamente largo.
Sé que estás harta de eso.
Pero como siempre, vale la pena extremadamente porque aprendemos tanto.
En primer lugar, creamos un enemigo.
Le agregamos un rango.
Agregamos una forma de dibujar ese rango.
Y también ejecutamos el juego. Podemos disparar al enemigo.
Obviamente no muere por ahora,
pero podemos meternos en el rango.
Se puede ver aquí mismo el jugador está en rango Chase.
Se está enviando cada vez.
Si salimos de esta pequeña burbuja, ahí tienes,
ya ves que el jugador está fuera de alcance.
Entonces, no perdamos más tiempo.
Y empecemos con este largo video.
Ah, así que es hora de algunos enemigos.
Empecemos.
Lo primero que vamos a hacer es que vamos a hacer
clic derecho para crear un objeto de juego vacío.
Asegúrese de que se restablezca su posición.
Y la rotación y escala y etcétera.
Y lo llamaremos enemigo por ahora hasta que decidamos qué enemigo va a querer usar.
Lo siguiente que tendremos que hacer es que vamos a tener que ir a los sprites.
Vamos a hacer clic derecho para crear una carpeta aquí para los enemigos.
Y dentro de los enemigos entrarán a los recursos y
vamos a arrastrar en el monstruo y las criaturas.
Y vamos a ponerlo aquí.
Por lo que esperaremos a que todo importe. Abriremos esto.
Y como pueden ver, tenemos cuatro tipos de enemigos
que he descargado de artes de juego abierto.
Por supuesto, como siempre,
puedes ir a buscar a tus propios enemigos.
Estos son los que he usado y estarán en el enlace, en los recursos.
¿ Y qué debo elegir?
Creo que voy a elegir cuatro ahora,
el, veamos cuál.
Realmente no he pensado en esto.
Los enemigos.
Sólo elijamos el esqueleto y seamos muy genéricos.
Entonces como pueden ver, tenemos ataque tres muerte ya sea etcétera, etcétera.
Entonces sólo voy a entrar en el ocioso.
Voy a hacer que se aplique múltiple Sprite Editor.
Y vamos a seguir adelante y rebanarlo,
no automáticamente, sino por un tamaño de cuadrícula.
Y si estabas un poco confundido por lo que hice la última vez,
solo reviso la longitud de todo el sprite.
Entonces son 600 y lo divido por cuantos esqueletos tenemos.
Entonces tenemos cuatro o una sola fila,
tan divididos por cuatro.
Eso significa que es 150 por 150, como siempre.
Por alguna razón, me sorprende.
Entonces entramos en el empalme, rebanamos.
Empalme, piensa que eso es empalme de película, claro, rebanada.
Ahí vamos. Aplicar.
Ahora tenemos nuestros pequeños esqueletos aquí mismo.
Voy a arrastrarlo.
Y la escena, whoa,
eso es un esqueleto enorme, ¿no?
Eso es ironía.
Si no lo has recogido.
De todos modos, lo haremos 50. Ahí vamos.
Todavía no lo podemos ver porque necesitamos tener y aplicar.
Vamos a seguir adelante y crear una capa aquí dentro que será el enemigo o enemigos.
Y voy a poner las balas para renderizar frente
al enemigo y también al jugador para renderizar una trama del enemigo.
Y sigamos adelante y pongamos al enemigo justo aquí.
Entonces ahí lo tienes.
Sigue siendo un enemigo muy pequeño.
Guardemos eso. Hagámoslo un poco más grande.
Entonces un inactivo 50, Hagámoslos 32.
Aplica eso.
A lo mejor aún más grande.
Hagámoslo 16. Por lo que 16.
Sí. Ahí vamos.
Está bien.
Eso es demasiado grande.
Cuando D tal vez 20.
Sí, creo que 20 es lo suficientemente bueno.
Eso ha cambiado estos dos puntos. A ver si eso ayuda.
Sí, ahí vamos. Se ve mucho mejor,
aún un poco granulado,
pero no se preocupe por eso.
Lo tenemos de forma gratuita.
De todos modos.
A ver, este es el cuerpo.
Este sería el cuerpo.
Y voy a pegarla al objeto de juego enemigo.
Entonces ahora tenemos al enemigo justo aquí y el cuerpo.
Vamos a ponerlo a 00.
El puesto es relativo,
por supuesto a los objetos del juego enemigo o ahora nos movemos por ahí
usando al enemigo y se puede ver que se renderiza detrás del jugador,
detrás del arma y también se debe renderizar detrás de las balas. Ve a la derecha.
Ahora que tenemos esto,
lo siguiente que tenemos que hacer es obviamente en
algún comportamiento o una forma de controlar el comportamiento de nuestro enemigo.
Entonces vamos a entrar a los activos, a los guiones,
vamos a hacer clic aquí dentro,
crear una nueva carpeta tal vez,
y llamémoslo los enemigos.
Entrar.
Quizás también cree uno aquí para el jugador,
que será el controlador del jugador.
Y veamos, también crearemos uno para las balas y el tiempo ahora.
Por lo tanto, crea una nueva carpeta para las balas.
Y vamos a mover estos a la bala.
¿ Por qué?
Porque tenemos la bala, el
controlador de bala del jugador y el efecto de impacto.
Entonces y dentro de los enemigos hará clic con el botón derecho,
creará un nuevo guión C Sharp,
y lo llamaremos el
controlador And EMI golpeó Enter.
Espere a que esto se compile. Está bien, genial.
Y ahora en el enemigo,
podemos seguir adelante y añadir un componente que es el controlador enemigo.
Y vamos a abrir el guión.
¿ De acuerdo? Entonces algo te habrías dado cuenta de que todas las pestañas se han ido.
Eso no es porque los cerré,
Eso es porque hemos cambiado el directorio de ellos.
Entonces movimos, por ejemplo,
el controlador del jugador de los scripts de carpeta a los scripts del jugador de carpetas.
Por eso no lo tenemos,
pero no te preocupes, sigue siendo,
si hacemos doble clic, podemos abrirla fácilmente.
Sigamos adelante.
¿ Qué necesitamos aquí dentro del controlador NMI?
Si bien necesitamos, en primer lugar,
una variable que mantenga en jaque la velocidad de los enemigos.
Y necesitaremos una variable que representará a los enemigos cuerpo rígido.
Entonces voy a hacer justamente eso.
Estas son cosas muy sencillas.
No hace falta mucha explicación.
Este es un campo serializado,
un flotador, y la velocidad enemiga.
Y otra variable que será un cuerpo rígido privado 2D.
Y acabo de recordar.
Y EMI, cuerpo rígido.
El cuerpo no necesita ser capital.
Guarda eso.
Y sólo recuerdo que nos olvidamos obviamente de agregar
un par de cosas al enemigo, que está aquí.
Vamos a añadir un componente el cual será un colisionador de cajas.
Y sigamos adelante y hagámoslo.
Entonces tal vez sin el escudo,
por lo general es mejor mantener los colisionadores de caja un poco más pequeños que el cuerpo real.
Esto hará que el jugador de tu juego deseara ser más preciso.
Y también podemos sumar la sombra, por cierto,
bajo el enemigo, lo cual es una idea bastante buena.
Voy a añadir otro componente,
que será el cuerpo rígido 2D.
Obviamente vamos a hacer 0 la escala de gravedad.
Guarde eso, y cerraremos ambos,
ambos abajo.
Mueve el guión debajo de los dos componentes,
o simplemente podemos dejarlo ahí.
¿ Cuál es la velocidad del enemigo?
Cuál es la velocidad del jugador primero, vale,
Es entonces, hagamos que la velocidad enemiga 5.5 de eso.
Guarda eso. Está bien, genial.
Entonces ahora tenemos al enemigo.
Tenemos un cuerpo rígido y un colisionador sobre él
para que podamos dispararle e interactuar con él físicamente.
Ahora lo que quieres hacer es empezar a mover al enemigo hacia el jugador,
pero no todo el tiempo,
sólo cuando el jugador se acerca lo suficiente.
Por lo que necesitamos una variable para el rango al
que el jugador estará en una orden para que el enemigo deje de perseguirlo.
Y también necesitamos la dirección en la que se va a mover el enemigo.
Entonces primero que lo primero,
vamos a crear un campo serializado,
que será un flotador con el jugador o el rango de persecución del jugador,
llamémoslo el rango de cadenas de jugadores.
Por lo que el rango que debe ser el jugador para empezar a perseguirlo.
Y crearemos un factor privado tres.
Y esta será la dirección para moverse en la dirección para moverse y guardar eso.
Está bien, genial.
Volvamos aquí.
¿ Y cuál es el rango de persecución? ¿Y sabes qué?
Guardémoslo para más adelante.
Y te mostraré una forma muy astuta de cómo podemos dibujar.
Entonces, ¿cómo vamos a saber cuál es el rango de persecución?
Entonces puedo, por ejemplo,
empezar a hacer el rango de cambio cinco o diez, o 21.
Pero, ¿qué significa?
¿ Qué significa el rango de persecución aquí dentro.
Entonces tenemos que cada vez calcular estas casitas
aquí para determinar qué tan lejos o cerca está declarar.
Bueno, claro que no.
Lo que vamos a hacer es dibujar
aquí un círculo que sólo aparecerá en el modo de escena,
pero no dentro del modo de juego.
¿ Cómo vamos a hacer esto?
Si volvemos y aquí tenemos algo llamado los artilugios de sorteo.
Y eso lo puedes encontrar en la documentación de Unity.
Y el aquí vamos,
se puede ver que tenemos algo bajo el comportamiento mono,
que es onDraw gizmo select.
Y se puede ver aquí mismo implementar el OnDraw se selecciona para
dibujar objeto gizmo está seleccionado.
Observe lo que dijimos, si el objeto está seleccionado y se puede ver aquí mismo,
tenemos la prueba de artilugios y cómo podemos usarlo.
Por lo que creamos un vacío onDraw gizmo.
Y aquí dentro podemos crear el color del gizmo por lo que seleccionamos qué color queremos que se dibujen.
Y qué queremos dibujar,
que es la esfera.
Entonces podemos hacer click en la troposfera y la podemos ver aquí mismo,
que es que el público dibuja miedo,
dibuja una esfera sólida con centro y un radio.
Entonces pongamos en práctica esto.
Y úsalo para dibujar nuestro propio círculo o esfera alrededor del enemigo y conocer el alcance del mismo.
Y si miramos de cerca el método y aquí podemos ver que dibuja el miedo,
necesitamos un centro y necesitamos un radio.
Entonces, ¿cuál debería ser el radio?
Piénsalo mientras creamos este método.
Entonces aquí, vamos a decir en sorteo artilugio seleccionado.
Y antes que nada vamos a elegir un color.
Entonces va a ser el color de punto de artilugios
y va a ser igual al color, digamos rojo.
Guarda eso.
A continuación vamos a acceder a los artilujos punto Dibujar alambre, esfera.
Entonces, ¿por qué son la mirada de la esfera que dibuja una esfera de estructura alónica con un centro y el radio.
Entonces es un poco diferente a la esfera,
pero como estamos jugando en 2D,
no necesitamos dibujar toda la esfera,
solo necesitamos el cable alrededor de ella.
Y veamos cuál debería ser el centro.
El centro obviamente debe ser las posiciones de punto transformado o
transporte es el transporte del objeto que tiene el controlador enemigo.
Sé que lo he dicho un millón de veces,
pero para aquellos de ustedes que aún están confundidos,
sé que estaba un poco confundida cuando empecé a hacer
esto hace un par de años, hace muchos años.
Y recuerdo, entonces ¿de dónde viene esto?
Bueno, es la transformación del objeto que tiene el controlador enemigo sobre él, lo
que significa que es éste, V enemigo.
Este es el transformador que habla aquí atrás.
¿ Cuál es el radio?
Bueno, ¿lo has pensado?
¿ Cuál debería ser el radio?
Obviamente, es el rango de persecución del jugador.
Eso lo vamos a salvar.
Vamos a volver a la Unidad.
Y bueno, mientras que el círculo que podrías estar preguntando, bueno,
si recuerdas hace un par de videos apagamos los artilugios.
A lo mejor ya lo viste,
no te diste cuenta, pero si hacemos clic en él, ahí vamos.
¿ Y por qué lo apagamos?
Porque teníamos esta cámara e ícono molesto de la cámara.
Lo que podemos hacer es abrir los artilujos.
Se puede ver que aquí podemos anular la selección de muchas cosas,
pero una de las más importantes es que podemos hacer que estos iconos sean un poco más pequeños.
Entonces ahí lo tienes.
Ya no vemos a la molesta cámara ir, ¿correcto?
Así que mira ese círculo grande, enorme.
Hagámoslo un poco más pequeño.
Y se puede ver que cambia de inmediato.
Yo lo voy a hacer sí grande.
Voy a poner al jugador ahí.
Y lo siguiente que tenemos que hacer es calcular la distancia entre el
jugador y el enemigo y ver si es menor que el alcance.
Si es menos, podemos empezar a perseguir al jugador.
Si no es menor que,
no perseguimos al jugador.
Entonces, ¿cuál es el primer paso a hacer?
Bueno, tenemos el alcance,
tenemos la posición transformadora del enemigo.
Lo siguiente que necesitamos es una referencia al jugador.
¿ Cómo vamos a conseguir la referencia del jugador?
Bueno, antes que nada necesitamos entender un método que les voy a mostrar, que
es el objeto dot find objetos de tipo.
Y lo que esto hace,
el objeto t significa que depende de cuál sea el objeto que estás buscando.
Entonces cuando encuentras el objeto,
d se convierte en ese tipo de objeto.
Entonces el objeto, el primer acto de objeto cargado que coincide con el tipo específico.
Por lo que devuelve el primer objeto cargado de los tipos de tipo o puedes darle tu tipo.
Y si miramos aquí,
podemos ver un par de ejemplos.
Entonces digamos que queremos encontrar el renderizador de Canvas.
Si no sabes cuál es el renderizador de Canvas
, no te preocupes, lo revisaremos más adelante.
Pero por ahora, mira el renderizador de Canvas.
Creamos una variable de tubería de renderizador de lienzo con el nombre Canvas,
y usamos objeto finito de tipo y obtenemos el render de lienzo.
Por lo que ahora obtenemos una referencia al mismo.
Y como sólo tenemos un jugador,
podemos usar esto.
Si tuviéramos múltiples jugadores,
no podíamos tener porque,
bueno, obviamente encontramos sólo el primer acto de uno.
Entonces busca este método, encuéntralo
, estudialo, entenderlo.
Y entonces tendrás que hacer este reto.
Tendrás que encontrar el objeto jugador.
Entonces crea una variable de tipo transformada para representar al jugador que queremos perseguir
y empezar a usar encontrar objetos del tipo 2, encontrar al jugador.
El tipo debe ser el controlador del jugador.
¿ Por qué? Porque necesitamos encontrar algún tipo específico del jugador.
Entonces, ¿cómo identificamos al jugador?
Es igual que todos los demás objetos.
¿ Qué lo hace único?
No es solo el nombre que puedes encontrar a través del nombre o el cuerpo o el on.
Tenemos que usar algo específico.
Y eso es algo específico es el guión del controlador del jugador.
Por eso el tipo de objeto que quieres encontrar es el controlador del jugador.
Y finalmente usa la transformación de puntos en el objeto que encuentres y
asígnalo a la variable que hemos creado, y dot transform.
Deberías saber esto porque el tipo que vamos a crear es la transformación.
¿ Por qué se transforma?
Bueno, porque queremos conseguir la distancia.
¿ Cómo obtenemos la distancia?
Bueno, obviamente porque es una transformación.
Así que pausa el video ahora mismo.
Ve a hacer el reto.
De acuerdo, entonces lo primero, primero,
vamos a crear una transformación privada y el jugador a perseguir.
Ahora dentro de inicio,
vamos a decir que el jugador a perseguir es igual para encontrar objetos de tipo.
Y el tipo que buscamos es el controlador del jugador.
Y cuando sí lo encontramos porque declaró de dos Chase como una transformación,
sólo vamos a acceder a la transformada inmediatamente de mí.
Entonces espero que hayas hecho el reto.
Espero que no fuera demasiado duro.
Sé que aquí hubo un poco de trucos,
pesar de que es la primera vez que usas encontrar objeto de tipo,
estoy seguro de que al menos fuiste capaz
de hacer esta parte si no te hubieras dado cuenta de esto,
no te preocupes sobre que era su debido tiempo, lo entenderá todo.
Pero ahora, el siguiente paso es seguir adelante y calcular la distancia.
Entonces voy a crear en primer lugar, una declaración if.
Y luego voy a escribir vector 3 punto.
Y se puede ver que aquí tenemos un método que es la distancia y
devuelve la distancia entre a y B.
Así que vamos a abrir esto.
¿ Cuál es la a?
Va a ser la posición de punto transformado. ¿Y cuál es la B?
Va a ser el jugador para perseguir posición de punto.
Ahí vas.
Y cuál es la condición si la distancia entre la posición transformada,
que es el enemigo y el jugador a perseguir,
que es el jugador y es menor que el rango de persecución del jugador V.
Entonces vamos a estar moviendo a nuestro enemigo.
Pero eso es por otro video.
Por ahora, solo voy a usar el registro de puntos de depuración.
Y voy a decir que el jugador está en el rango Chase.
Y una declaración else que diremos que duplican esta línea, muévala hacia abajo.
Y va a decir,
jugador fuera de Chase está fuera de alcance de persecución.
Guarda eso de nuevo en nuestro juego.
Vamos a saber lo que sólo quiero hacer algo.
Haré público esto solo por ahora,
sólo para que veamos qué pasa.
Por lo que notarás que en el enemigo ahora
mismo tenemos un jugador que perseguir, pero no hay nada.
No vamos a añadir nada.
Nosotros sólo vamos a ejecutar el juego. Ahí vas.
Se puede ver que ahora el jugador de la perdición, si hago clic en él,
ahí está la referencia y ahora el esqueleto,
nuestro enemigo tiene una referencia al jugador.
Hasta puedo dispararle.
Entonces voy a entrar a la consola.
¿ Qué es esto falso?
Hagamos doble clic.
De acuerdo, Entonces este y jugador está fuera de alcance de persecución.
Déjame poner la ventana de juego al lado
la escena cuando esos para que podamos ver claramente el círculo aquí dentro.
Entonces si me acerco lo suficiente,
Ahí vamos, se puede ver que ahora jugador está en rango Chase.
Si salgo, jugador está fuera de alcance.
Si voy y juego como NJ extraño,
ahí tienes, todo está funcionando perfectamente bien.
Por lo que espero que lo disfruten.
Y el siguiente video en realidad estará moviendo a nuestro enemigo,
no solo imprimiendo algo a la depuración, al registro.
Permítanme eliminar este registro de puntos de depuración.
Guarda eso.
Déjame volver a hacer esto privado porque no necesitamos verlo.
Yo sólo quería demostrarme.
No olvides escenificar todos tus archivos.
Y antes de irme,
¿Qué quería también contarles a todos.
Espero que lo disfruten.
Nos vemos la próxima vez.