Hey, bienvenidos de nuevo, mis compañeros desarrolladores de juegos.
En este video, no hemos cambiado mucho,
pero lo que hicimos es que acabamos
empezar a configurar un sistema de armas adecuado.
Trasladamos al mecánico de tiro
del jugador de la perdición al arma real,
que es la consola de Sharp.
Como pueden ver, aquí no hay nada nuevo.
Acabamos de hacer un par de cambios.
Este video se trata de todo,
llamémoslo actualizar
tu proyecto para que llegues a cierto punto.
Tienes toda la mecánica básica que quieres,
pero ahora es el momento de hacerlas mucho más eficientes.
Entonces, sin más preámbulos,
no perdamos más tiempo.
Y hagamos de nuevo el grado del proyecto.
0 caso.
Por lo que es momento de crear un sistema de tiro más
avanzado y el profesional.
Entonces lo primero que vamos a
hacer es que vamos a mover
todo lo que está relacionado con el disparo del controlador del jugador a
disparo del controlador del jugador
un guión separado
que voy a crear en este momento.
Si entro en los guiones
y tal vez hagamos esto un poco más grande.
los podamos ver al menos y dos filas.
Estos, de acuerdo, ahí vamos.
Voy a entrar aquí mismo.
Estoy creando una carpeta a la que se va a
llamar el arma o
llamémosle el sistema de armas.
Tener Enter.
Y voy a crear
aquí un guión que va a
ser el sistema de armas.
Hit Enter, espere a que se compile.
Y ahí vamos.
Y un día ahora. Gracias.
Fue sólo un guión.
De todos modos, voy a hacer
del punto de fuego un hijo de la escopeta,
y no nos va a permitir tendrá que abrir el prefabricado.
Ahí vamos, que sea niño, guarde eso.
Vuelve a nuestro juego. Ahí vamos.
Entonces ahora tenemos, y a veces cuando se
quiere agregar las prefabs,
hacer hijo de las cosas y hacer padres.
En ocasiones te requerirá
al paso extra de cambiar realmente todo el prefabricado.
Y lo siguiente que vamos a
hacer es añadir
este sistema de armas a la escopeta real.
Por lo que ahora la escopeta se encargará de todo el tiroteo.
En primer lugar, abramos el sistema de armas.
Y si miro en el controlador de capas, ¿dónde está?
Vamos a dar click aquí.
En tanto que el controlador jugador, bien, aunque.
Entonces ahí vamos. Como pueden ver,
tenemos tantos guiones en este momento.
Pero de todos modos, lo que queremos hacer es que queremos
movernos y este debe ser un método separado.
Lo que queremos hacer es mover a
todo el mecánico de tiro del jugador
desde el controlador del jugador al sistema de armas.
A lo mejor he mencionado esto antes.
No queremos que el jugador se encargue de todo.
Entonces, por ejemplo, no queremos que
el jugador se encargue de cómo vuelan las balas,
y no queremos que el jugador se encargue de cómo funcionan las armas.
Entonces con eso dicho,
te voy a emitir un reto.
Y tu reto va a ser mover
el disparo al guión adecuado.
Por lo que pareja del método de disparo desde el controlador de
jugador hasta el script del sistema de armas.
Asegúrate de que los dos copien todas las variables adecuadas con él,
y pon todo en unidad y pruébalo,
asegúrate de que funcione correctamente.
Entonces este reto se trata solo
de cómo actualizas tu script,
cómo actualizas tu proyecto y ganas.
En ocasiones empiezas tu proyecto.
No tienes todo el gran plan para ello,
por lo que necesitas hacer ajustes.
Esto sólo será un ejercicio de
cómo transferir cosas de un guión,
el siguiente, haciéndolo mejor,
lo haré frente a ti,
así que no te preocupes.
Nos aseguraremos de que todo funcione correctamente.
Pero por ahora, pausa el video y ve a hacer el reto.
Oh, bien, bienvenido de nuevo.
Entonces, ¿qué vamos a estar haciendo aquí dentro?
Vamos a seguir adelante y seleccionar todo esto.
Voy a cortar así Control X. Voy
a seguir adelante y ponerlo aquí o saber qué,
mantengamos la actualización y empecemos.
Podríamos necesitarlos. Voy
a pegar todo aquí para que
veas que tenemos mucho que manejar.
Entonces de vuelta aquí,
vamos a necesitar un par de
variables que son, déjame subir.
En primer lugar, voy a
comentar este fuera, guarde eso.
Entonces voy a facturar aquí, ¿qué necesitamos?
Necesitamos el swap y automatizar la bala el punto lejano.
Está bien.
Entonces veamos como arma tiempo automático entre disparos,
disparos contrarrestados, punto de fuego. Ahí va.
Estos son.
Variables y las voy a pegar aquí.
Guarda eso.
A ver, ¿qué más tenemos?
¿ Tenemos algún tipo de error aquí?
No, no creo que eso fuera toda la mecánica.
Entonces de vuelta aquí, ¿qué más tenemos?
0. Entonces si el jugador puede correr, ahora,
obviamente el punteante es parte de
la mecánica del
jugador del jugador es el que va a correr.
Entonces lo que necesitaremos es una forma de
conseguir una referencia al guión.
Entonces, ¿el jugador es apestoso o no?
¿ Qué podemos hacer?
Si nos desplazamos por aquí,
podemos crear un método.
Y si miro aquí arriba,
el guión se puede ver como privado.
Y lo que podemos hacer es crear un método aquí.
Y estas son cosas que vamos a estar usando
cada vez más a medida que vamos este tipo de métodos.
Por lo que es un bool público y es capa punteante.
Entonces aquí, todo lo que vas a hacer
es regresar puede correr.
Y voy a añadir un signo de exclamación
porque recuerda cómo funcionan los guiones.
Y como sólo regresamos una cosa,
así es como la vamos a estar escribiendo.
Ahora, obviamente esto no es algo
que sea como un estándar.
Esto es más como prácticas.
Entonces ten algún tipo de
variable en algún script diferente
que quieras acceder.
¿ Cómo lo haces?
Bueno, o haces pública la variable,
lo haces accesible a todos.
Pero el problema a la hora de hacerlo
público es que se puede cambiar.
Entonces si hago esto público,
entonces puedo cambiarlo de un guión diferente,
lo cual es una muy mala idea.
Confía en mí, nunca quieres poder cambiar
variables en diferentes scripts de diferentes scripts.
Por lo que no quieres poder hacer
que el jugador pase de, digamos,
el Gestor de UI por
error, sucede a veces.
Entonces una mejor manera es solo poder comprobar si estamos corriendo para
que podamos conseguir el punteante,
pero no podemos cambiar si el jugador es apestoso.
Entonces esta es una capa extra de seguridad y
es por eso que siempre usamos campos serializados.
Podríamos haberlos hecho públicos todos
y habrían sido las mismas funciones.
Podríamos haberlos visto en el inspector y así sucesivamente.
Pero convertirlo en un campo serializado significa que no podemos
acceder a estas variables desde diferentes scripts,
y esto pagará dividendos más adelante
a medida que avanzas en tu viaje de desarrollo de juegos.
Asegurándose de que puedas,
no solo en el desarrollo de juegos,
siempre que se trate de programación,
no quieres clases diferentes,
variables cambiantes, otras clases diferentes.
De todos modos, me estoy adelantando.
¿ Qué vamos a hacer aquí dentro?
Podemos o bien encontrar el objeto jugador
o podemos obtener componente en parent.
Y podemos, vamos a quitar esto por un segundo.
Podemos acceder al controlador del jugador y al padre,
y podemos seguir adelante y comprobar.
Es jugador es jugador apestoso o qué,
lo que es este jugador es apestoso.
Lo que es esta capa es contundente, se está moviendo.
Ahí está punteante 0,
por lo que en realidad también podemos devolver esto.
Por lo que ya no se necesita este método.
Y eso realmente no fue algo que yo notara.
Pero de todos modos, la capa es contundente.
Al menos tuvimos la oportunidad.
Vamos a comprobar si
la velocidad de movimiento actual es igual a la velocidad.
De acuerdo, entonces volvemos verdad. Y ahí vamos.
Si estamos apostando,
entonces no podemos estar disparando
y no vamos a llamar a esto el jugador disparando.
Cambiemos a las balas de disparo.
Ahí vamos. Entonces esto tiene más sentido ahora mismo.
¿ Y qué más deberíamos estar haciendo?
Bueno, obviamente, tenemos que estar
llamándolo aquí en la actualización,
asegurándonos de que podamos disparar.
Entonces voy a estar simplemente llamando al
método de disparo de balas.
Y ahora tenemos que volver a
Unidad y armar todo.
Entonces voy a abrir Unidad.
Ya verás que el sistema de armas cambió.
Y esto fue, esto es tan vergonzoso.
Ni siquiera noté que estaba justo ahí y
me olvidé por completo que habíamos exhibido este puntito.
Pero de todos modos, al menos aprendes
algo de un tipo diferente.
O tenemos este monólogo de por qué
no queremos acceso a las variables.
Ahora, no se preocupe. Electrón
por supuesto estaremos implementando muchos de
estos métodos a medida que avanzamos
y hacemos de nuestro código un poco más profesional.
Entonces con eso, ¿quién Cosas Hecho?
Vamos a entrar a, en
primer lugar como 70 punto lejano de la escopeta.
Nos vamos a asegurar
que esta arma no sea una romántica y haremos
el tiempo entre disparos alrededor de 1 segundo, 1, no 21.
Necesitamos una bala, así que entraremos en las Prefabs,
balas rotas, y las balas de capa.
Guarda eso.
Vayamos al jugador de la fatalidad y aplicamos todos los cambios.
Y ahora voy a ¿Qué más tenemos?
Corremos el juego y veamos qué pasa.
Entonces el jugador, jugador se mueve por el camino,
pero así el jugador se mueve y si deberíamos,
Ahí vamos, podemos disparar.
Y si mantengo pulsado el botón del ratón,
por alguna razón, no es disparar.
123.
Ah, no es automático.
Está bien.
Pero el problema está tan bien.
Ahora, aunque mantenga pulsado el botón del ratón,
no es automático, pero la escopeta todavía dispara mucho.
Y esto es algo que queremos arreglar porque ahora estamos
hablando de un mecánico de tiro avanzado.
No es el mecánico de tiro habitual.
Tenemos que asegurarnos de que nuestro tiroteo sea consistente.
Entonces la escopeta, si sostenemos presionada,
dispara un botón,
pero si seguimos presionando para que la escopeta no debería
estar disparando tanto al disparar.
Entonces con eso fuera del camino,
con toda esta sección, Cambiar, scripting todo.
Espero que lo disfruten y los veré en el siguiente video.
Asegúrate de que siempre cometes tus cambios.
Y voy a hacer este commit
move tiro mecánico de
capa dos, el arma real.
Ahí vamos, comprometemos los cambios,
y nos vemos en el siguiente video.