Bienvenidos de nuevo a mis compañeros desarrolladores de juegos a un video totalmente nuevo.
Y cuando ejecutamos el juego,
se puede ver que tenemos una bala que viaja por
espacio y cuando golpea una pared, se destruye.
Entonces, no perdamos más tiempo.
Y empecemos.
De acuerdo, así que sigamos adelante y creemos algunas balas.
El primero que tenemos que hacer es conseguir unas balas sprite.
Adelante y hagamos justamente eso.
Voy a entrar en el proyecto.
Y antes de hacer esas cosas,
quiero cambiar un par de cosas aquí.
Entonces voy a hacer clic con el botón derecho para crear una carpeta.
Voy a llamar a esto las faldas.
Y voy a añadir el controlador de jugador.
Y aquí voy a crear una carpeta por primera vez ahora los sprites.
Y voy a añadir a esta carpeta todos los sprites que tenemos.
O incluso antes de eso,
voy a crear una carpeta para el jugador y una carpeta para las armas.
Armas. Ahí vamos.
Por lo que ahora puedo abrir los sprites aquí dentro.
Tomemos el arma y la pongamos aquí.
Tomemos el precio del jugador y los pongamos en la carpeta del jugador. Genial.
Ahora tenemos todo preparado.
Tenemos este pequeño error.
No creo que sea un problema mayor.
Está bien, genial.
Ahora sigamos adelante y creemos otra carpeta aquí que serán las balas.
Y vamos a entrar en los recursos y conseguir los sprites para las balas láser.
Ahora, tal vez te estés preguntando,
¿ por qué elegí tener balas láser y no balas para una escopeta regular?
Bueno, antes que nada, mira estas balas,
qué cool se ven.
Eso es 4142. Yo quería que algo apareciera fácilmente.
Entonces como puedes ver, estamos,
Vamos a ponerlo en la capa de jugador,
acuerdo, Así que quiero que algo sea claramente visible para nosotros.
No quiero tener una pequeña bala que apenas podemos ver.
Yo quiero tener una bala grande y brillante que podamos disparar.
Entonces si quieres, podemos crear una capa de clasificación para las viñetas.
Adelante y hagamos eso.
Una nueva capa de clasificación,
vamos a llamar a esto las balas y debería estar renderizando frente al jugador.
Voy a elegir esto.
Voy a renombrarlo a la bala del jugador.
Y yo sólo elegí esto al azar.
Puedes elegir cualquier bala que quieras.
Creo que quizá una roja como escopeta.
Conoce. Incluso mejor que esto.
Mira lo que podemos hacer.
Puedo elegir el jugador bala y un puedo cambiar el sprite aquí,
arrastre el número 14 sobre.
Ahí vamos. Entonces es una bala enorme.
A lo mejor se podría cambiar un poco,
por lo que la bala se renderiza frente al jugador.
Y sí creo que tal vez haciéndolo 0.50.5.
No, tal vez mantenerlo uno.
Sí. Eso parece una bala de arma de tiro grande.
Está bien, genial.
Ahora tenemos que sumar un par de cosas a esto.
Tenemos que, en primer lugar añadir un cuerpo rígido porque vamos a estar,
Qué es eso, Perdón, habitación.
Vamos a añadir un cuerpo rígido porque obviamente esta bala se estará moviendo.
Vamos a asegurarnos de que congelemos la rotación.
Vamos a asegurarnos de que la escala de gravedad 0.
Y ahí vamos.
Entonces vamos a añadir un colisionador a esto.
Entonces voy a añadir un colisionador.
¿ A ver cuál deberíamos usar?
Creo que el colisionador de cápsulas no funcionará porque está invertido,
culminó en lo horizontal.
Vamos a seguir adelante y usar un colisionador de cajas.
Creo que ya es lo suficientemente bueno.
Entonces, ¿dónde está el colisionador de cajas?
Hagámoslo un poco más pequeño.
Sí. Ahí vamos.
Y siempre te recomiendo que hagas los colisionadores de cajas
alrededor de cosas como balas un poco más pequeños de lo que tienen que ser.
Entonces ahí vamos.
Ah, está bien. Eso es bastante bueno, creo.
Y ahora necesitamos cambiar el comportamiento de la bala.
Queremos hacerla volar.
¿ Cómo hacemos eso? Hacemos eso agregándole un guión.
Entonces voy a entrar en nuestros guiones aquí dentro.
Voy a hacer clic derecho y crear un nuevo guión,
que va a ser el controlador de bala jugador.
Esperemos a que esto compile dot abra inmediatamente un script cada vez que cree uno,
solo espere a que se compile.
Y ahora podemos seguir adelante y arrastrar el guión a la bala del jugador.
Y podemos ver en la bala del jugador tenemos el renderizador sprite vía cuerpo rígido,
el colisionador de cajas, y por supuesto el guión del controlador de bala del jugador.
Entonces, hagamos doble clic y abramos el guión.
Por lo que tenemos un guión totalmente nuevo.
¿ Qué vamos a hacer aquí?
Bueno, en primer lugar,
queremos una forma de controlar la velocidad de esta bala.
Entonces voy a crear un campo serializado de tipo float,
que es la velocidad de bala.
Y vamos a ponerlo por defecto 25 F porque nunca queremos tener un valor predeterminado de 0.
Entonces 55, pero la velocidad de la bala.
Entonces si es baja, pero es mejor que nada.
Y lo siguiente que queremos hacer es añadir velocidad a esta bala.
Entonces para hacer eso,
necesitamos una referencia al cuerpo rígido.
Y no tengo ganas de hacer esto,
así que quiero dártelo como reto,
necesitarás conseguir una referencia al cuerpo rígido.
Por lo tanto, crear una variable de tipo cuerpo rígido se asegura de que sea privado.
Y empieza a obtener el componente del cuerpo rígido tipo.
Si ya sabes hacer esto,
pausa el video y ve a hacer el reto.
Si no, te daré una pequeña pista sobre cómo conseguir un componente.
Usa el componente get con un tipo entre los dos signos poco más grandes o más pequeños.
Así que pausa el video ahora mismo y ve a hacer el reto.
De acuerdo, bienvenido de nuevo.
Entonces aquí voy a crear un cuerpo rígido privado 2D y el cuerpo
rígido de bala.
Guarde eso.
Y ahora, porque tenemos
el controlador de bala jugador en un objeto de juego que también tiene el cuerpo rígido.
Podemos acceder inmediatamente a ella diciendo que las balas
cuerpo rígido es igual al componente de deuda, cuerpo rígido 2D.
Y ahora tenemos una referencia al mismo.
Ahora y actualizar ¿qué vamos a hacer?
Bueno, al igual que hicimos con el jugador,
voy a seguir adelante y decir que
las balas rígidas velocidad del cuerpo es igual al nuevo vector 2,
porque la velocidad es un vector 2.
Cuando estemos trabajando en el espacio,
me voy a quedar uno para la x.
Y voy a mantener el 0 F como la y.
y lo voy a multiplicar por la velocidad de bala.
¿ Por qué estoy haciendo esto?
Bueno, porque no quiero que la bala se mueva en el eje y.
No quiero que se mueva verticalmente.
Yo quiero mover la bala sólo horizontalmente por ahora.
Entonces, vamos a guardar eso.
De acuerdo, entonces volvamos a Unity y alejemos un
poco y hagamos de la velocidad los dos para que podamos ver claramente lo que está pasando.
Vamos a mover al patrón y la bala hacia atrás y ejecutar nuestro juego.
Entonces ahí vamos,
se puede ver que la bala está viajando por el espacio y cuando golpea,
así que todo, se detiene por completo, tan genial.
Nuestra bala se mueve perfectamente. Podemos dividirlo.
Podemos hacer lo que queramos.
Pero, ¿qué pasa, por ejemplo,
si el libro es diagonal cuando ejecutamos nuestro juego?
A ver qué pasa.
Sí, así que claramente no es así como se supone que se esté moviendo una bala.
Lo que queremos hacer es que la bala siempre se esté
moviendo en la dirección que le hemos puesto.
Entonces, ¿cómo vamos a hacer esto?
Digamos, por ejemplo,
tenemos nuestra escopeta aquí mismo,
nuestro brazo, y está girado hacia arriba.
Nuestra bala también se girará hacia arriba.
Entonces si lo movemos,
Es algo parecido a eso.
Pero si hacemos clic aquí,
arriba, aquí arriba, se puede ver el centro y lo global.
Esto es para la rotación,
esto es para el,
bueno, cómo se representan los ejes.
Por lo que si hago click en el local,
puede ver esta es la dirección que la bala está mirando actualmente.
Entonces así va a salir la bala y volar.
Y se puede ver que es el rojo,
que es el eje x,
está mirando hacia arriba y la dirección de la bala.
Entonces siempre que rotemos nuestra escopeta,
queremos que la bala la rote con ella también.
Entonces queríamos volar siempre en dirección a la x
Entonces, ¿cómo vamos a hacer esto?
Bueno, por suerte, hay un vector que se llama el punto de transformación, ¿verdad?
Y déjame mostrarte qué es eso.
Oops, lo siento, eso es para más tarde.
Entonces transformar ese derecho es el eje rojo del transporte en el espacio mundial.
Por lo que podemos acceder a este eje cuando queramos.
Y esa es la dirección que vamos a estar haciendo volar nuestra bala.
Entonces de vuelta en nuestro código y aquí voy a quitar el nuevo vector dos.
Y voy a hacerlo en su lugar.
Diga que la dirección se transformará punto, ¿verdad?
Entonces ahora cada vez y la actualización,
cuando la bala está volando,
está volando a la velocidad de la velocidad de la bala que determinamos
y en la dirección del transform.py,
derecha, que es el eje rojo.
Vamos a probar esto.
Entonces si corro el juego ahora mismo,
la bala se mueve bien.
Genial.
A ver si guardamos eso.
Y cuando la bala apunta hacia arriba,
si corro el juego, sí,
ahí vamos, la bala se mueve hacia arriba.
¿ Qué tan guay es eso?
Genial.
Ahora, una cosa más.
No es así como capaz se comporta.
Por lo general una bala Siempre que sea así.
Déjame sólo estirarlo.
Bueno, funciona.
Sí. Ahí lo tienes.
Simplemente le encantó el edificio y seguirá para siempre hasta la eternidad.
Y eso es un problema.
Siempre que tengas una bala que no se destruya en algún momento cuando golpea una pared.
Esto es lo que necesitamos arreglar. Eso es lo primero.
Lo segundo, una bala no solo golpea una pared y se queda ahí.
Una bala debería poder viajar a través de una pared.
A lo mejor, tal vez viajó por un muro.
Por lo que vamos a dar click en la bala de los jugadores.
Vamos a bajar y al colisionador y vamos a convertirlo en un gatillo.
Entonces, ¿qué es un gatillo?
Un gatillo si el colisionador se comporta como un gatillo o no,
eso no es muy útil.
Un gatillo significa que si esta bala golpea una especie de superficie,
no la impacta físicamente.
Pero nos da la capacidad de llamar a algo llamado causa,
algo llamado Eso es muy inteligente.
Y en Trigger Entrar a la,
entonces lo que esto hace,
se puede leer la descripción enviada cuando un otro objeto entra en
un colisionador disparado adjunto a estos objetos sólo a la física.
Entonces, ¿qué pasa si esta bala es un gatillo mientras viaja por el espacio?
Cuando golpea la pared aquí dentro,
que está en el fondo.
Cuando llegue a este muro,
se llamará un método de entrada de azúcar,
que creará en el controlador de balas de jugadores y wariness oro,
podemos seguir adelante y hacer lo que queramos.
Y una de esas cosas es destruir la bala.
Déjenme demostrar.
Eso es mucho hablar, no hay suficiente acción.
A ver qué pasa.
Voy a escribir en Trigger,
Enter 2D, pulsa la tecla Tab.
Entonces como puedes ver, es un vacío privado.
No te preocupes si no sabes cuál es esa palabra.
Posteriormente te explicaremos todo y cómo podemos crear métodos.
No te preocupes. Y luego tenemos el Onsager enter
y tenemos algo aquí dentro que se llama parámetro.
También profundizaremos más en ello.
Pero todo lo que necesitas saber que esta colisión es el objeto al que acabamos de golpear.
Entonces, por ejemplo, si esta bala vuela y golpea al jugador,
el jugador es la colisión aquí mismo.
Pero de todos modos, ¿qué queremos hacer cuando la bala golpea algo?
Bueno, queremos que esta bala se destruya a sí misma.
Queremos que esta bala desaparezca.
Ya no necesitamos en nuestro mundo.
Hay un muy buen método para hacer esto,
simplemente escribiría destruir el objeto del juego, y eso es todo.
Entonces destruimos lo que deben tener los esteroides o elimina un objeto de juego, componente o activo?
¿ Y qué queremos quitar?
Queremos eliminar el objeto de juego real.
Y si pasas sobre él,
puedes leer el objeto del juego.
Este componente está unido a unos componentes de un objeto de juego.
Entonces, vamos a guardar eso.
Volvamos a Unidad,
ese doblete conjunto aquí mismo.
Y ahora cuando la bala impacta a cualquiera de los colisionadores,
debería desaparecer de nuestra escena.
Vamos a ejecutar el juego.
Mantén los ojos en la vista de escena. Ahí lo tienes.
Se pone esteroide.
¿ Notaste en la jerarquía que ya no tenemos la bala?
Disculpe, esa es una actualización molesto.
Probemos esto de nuevo sin ninguna actualización.
Eso ha intentado poner la bala aquí mismo.
Ejecuta el juego, mantén el ojo en la jerarquía cuando golpee,
por lo que desaparece toda la bala.
Entonces ahora cuando alguna vez entramos a una zona,
bala se destruye porque es un disparador,
lo que significa que desencadena el método Onsager
enter siempre que en realidad golpea cualquier tipo de pared,
puedes leer más sobre ello aquí en la documentación de la Unidad.
Por lo que espero que hayas disfrutado creando tu nueva bala.
Espero que no te moleste que las balas sean brillantes y muy
futuristas en punto de la peculiaridad del juego que estamos creando.
Y también estamos usando sprites libres.
Entonces tenemos que trabajar en torno a las limitaciones que tenemos.
El siguiente video, en realidad estaremos disparando
estas balas desde el arma aprendiendo qué es el breve arriba.
Nunca olvides cometer tus cambios.
Espero que lo disfruten y los veré en el siguiente video.
Y antes de que me vaya por cierto,
hay algo que no queremos escenificar y nuestro juego,
que son los sprites que acabamos de agregar.
Entonces qué vamos a hacer, porque esto no es necesario poner en escena, comprometiendo los sprites.
Lo que voy a hacer es que voy a entrar aquí.
Voy a hacer clic derecho y voy a ignorar
e ignorar todo debajo de los activos, sprites.
No queremos guardar nada que esté dentro de los sprites.
Porque uno, siempre tendremos los sprites en nuestra computadora para,
quizás nunca habríamos borrado los sprites por error.
Y aunque lo hagamos, siempre podemos volver a ponerlos.
Y 3, ocupan mucho espacio innecesario.
Entonces ignora todo bajo los activos sprites golpearon Vale,
Todo debería haberse ido,
sólo las balas y demás y así sucesivamente.
Entonces espero que hayas disfrutado de escenario todo y te veré en el siguiente video.