Vale, vamos a empezar a añadir funcionalidades en este caso, hasta el momento solo hemos utilizado
los métodos Translated y Rotax para movernos, los cuales son muy poco utilizados, porque si traslada
esos rotados, al final estáis desafiando las leyes de la física.
Y claro, Unity la gracia que tiene es que es un motor que trae la física implementada automáticamente
para que vosotros no os preocupéis de nada.
Si es así, significa que todo lo que hemos hecho hasta ahora estaba mal comillas, porque no utilizábamos
los cuerpos físicos.
Ojo, no quiero decir que todos los juegos de Unity deban utilizar cuerpos físicos, cuerpos rígidos,
pero si queréis que la gravedad les afecte, lo que no podéis hacer es trasladar y rotar sin aceptar
las consecuencias de que la gravedad os pueda tirar para un lado, para otro.
El caso más tonto sería el que vosotros la gravedad os tira para abajo, pero vuestro player controller,
si pulsas hacia adelante, se mueve absolutamente en línea recta, desafiando las leyes de la gravedad.
Entonces, para conformarnos a las leyes de la gravedad que van a regir nuestro mundo y que recordad
en Project Settings, aquí podéis configurar en físicas de Proyect Settings.
Hay una opción para decidir hacia dónde va a ser la gravedad.
Y ahora lo veréis.
Pues habrá que utilizar un translated, ni un rooteo, sino que habrá que utilizar la pieza que le he
añadido a mi personaje y que permite que el motor de físicas actúe sobre él.
Qué pieza es esa?
El body?
Aquí fijaros que haciendo la tontería tan grande de cambiar la gravedad, imaginad voy a hacer que la
gravedad vaya en la dirección positiva de Las Zetas, además del ley, cambiando la gravedad.
Se ha caído.
O sea, le pesa el culo literalmente.
Lo veis?
Sólo cambió la gravedad que la zeta 100 de gravedad en la zeta, que es la hostia.
Pues fijaros y Pain salió disparado.
Hay un campo de fuerza que se lo ha comido.
Vale, si os preguntáis dónde está, pues está orbitando por ahí.
Lo veis que da vueltas porque hay una fuerza gravitatoria que lo estás tirando.
Si entonces vosotros podéis definir cuáles son las leyes de la gravedad, la configuración de la física
está aquí.
Lo que sí que es importante es que nuestro jugador ahora que implementaremos su controller.
Evidentemente todo juego tiene controles.
No podréis trasladarlo ni rotarlos con lo que sabéis hasta ahora, sino que deberíais hacer que se someta
a las leyes de la física.
Por tanto, primero vamos a crear aquí una carpeta para los scripts, como hacemos siempre scripts.
Por cierto, mucha gente, como los scripts, suele ser la carpeta que más se utiliza cuando ahora tenéis
4 carpetas.
No me molesta, pero cuando tenéis 100 carpetas, encontrar la carpeta scripts es un coñazo.
Entonces, el truco que utilizan muchos desarrolladores y que os encontraréis es si alguna vez trabajáis
en un estudio de videojuegos.
De verdad es que la carpeta que me interesa tener más accesible en este caso es escrit.
Le colocan una barra baja adelante al llamar la barra baja de scripts.
El sistema coloca la primera de todas.
Esta es una forma muy barata, muy barata de siempre poder ir a la carpeta de script porque es la que
siempre va a estar en primer lugar, incluso en la jerarquía lateral.
Aquí ves que esta es la primera de todas.
Es muy cómodo.
De hecho, dentro de Cours Library ya me lo he encontrado con los assets creados por Unity dentro de
Cours Library.
Veis que la primera pone barra baja sours filtro.
Esto probablemente es porque este barra baja sours fils es la carpeta que ha utilizado el artista cuando
creaba sus modelos 3D.
Esto es una de la barra baja.
Viene bastante de Malloy y de Blender.
Se suele colocar en la barra baja para siempre tenerla accesible.
Y fijaros que aquí, en este caso que hay en source files, los modelos, los materiales misceláneo,
no se que hay todos los huesos o las máscaras en este caso y las texturas es todo lo que ha trabajado
el artista en su día a día.
Esta es la carpeta que probablemente el creador ha exportado de Blender o ha exportado de Maya o de
3D Max y nos la hemos traído acá.
Incluso con la propia nomenclatura y alguien aquí ya lo ha ensamblado para hacer cada una de estas otras
carpetas.
Pues nosotros si queremos que la carpeta de scripts no se pierda dentro de una gran cantidad de carpetas
por aquí dentro.
El truco es llamarle barra baja y que siempre sea la primera.
Vais a ver que los grandes estudios de videojuegos lo hacen todos.
De hecho, el día que yo no lo hago me miran mal en plan tonto.
Si es verdad que vosotros sois profesionales y yo no vale.
Bien, pues en esta carpeta de scripts vamos a crear nuestro controlador y para no perder la costumbre.
Botón derecho crear.
Le vamos a llamar Player Controller.
Le podría llamar Granjero Controller?
Le podría llamar si ya Amper Controller, pero cómo?
A fin de cuentas es lo que vais a controlar?
Pues un jugador le llamo Player Control.
Vais a ver que el 90 por ciento de las veces lo voy a llamar así.
A quién hay que darle player control?
A quién hay que darle este script?
Para algo es el control del Play 2.
Cuando vosotros venís aquí y lo arrastras, se le asigna.
Doble clic en el Player Controller Vamos a abrirlo en River y aquí este es el primer controlador que
va a requerir que el jugador tenga algo muy especial el chip Bodhi, porque me va a hacer falta un rolling
body.
Cuando os hacen falta diferentes componentes que no sabéis si el que creaba el personaje las habrá añadido
o no, os encontraréis con un problema de comunicación.
Básicamente imaginad que el que crea la cosa esta en 3D, pues es el que Seiner que quiere que empiece
el juego, empiece aquí con este ligeramente arriba o más abajo o lo que sea y el 26 de turno se le
olvida añadirle el chip body.
Claro, si yo ahora como programador supongo que mi personaje va a tener Riddim Body y no lo tiene,
que es lo que va a pasar, que va a dar un error entonces.
Para ello hay unas directivas muy útiles en Unity, que son las siguientes.
Cuando creas una clase, en este caso Player controles de tipo mono, vigía y biok, que requiere que
tenga un rishis body justo antes de la creación de la clase la linea de antes, se suele colocar las
directivas que como siempre van entre corchetes y ésta se llama Ricoeur, componen Ricoeur Component.
Requiero de una componente y entre paréntesis tenéis que colocar tipo taipe o de tipo, y en este caso
son Rizzi.
Esta tontería que acabáis de hacer aquí os acaba de salvar el culo.
Por qué?
Porque si mi Player Controller ha sido arrastrado a un bicho que no tiene Rizzi Body, por ejemplo,
me vengo aquí y le quito Richy Body
no me va a dejar.
Lo veis?
No se puede eliminar el body porque el player controller depende de Vale, incluso si lo hago al revés.
Si yo me cargo el Player Controller y me cargo el Ridge Body y voy a añadir el Player Controller, algo
que no tiene Rising Body y que no lo tiene, cuando lo suelto me añade un body desmañado, un player
control.
Esto es pa idiotas, pero es lo que suele pasar cuando 10 personas trabajan en un proyecto y unos se
tienen que encargar de añadir esto y el otro de añadir lo otro.
Es decir, nosotros lo que siempre podemos hacer es establecer dependencias.
Requiero que todo Player Controller tenga un Hürriyet body.
Pues si lo pones requiero que tenga un box coloide.
Requiero que tenga esto, requiero que tenga lo otro.
Pone todos los componentes que queráis.
Evidentemente esto establece unas dependencias muy fuertes y tenéis que estar seguros que os va a hacer
falta.
A ver, en mi caso yo lo tengo seguro porque necesito que el personaje salte punto y para saltar necesito
el motor de físicas.
Pero en general, teniendo en cuenta que esta tontería que acabo de escribir aquí suele salvar guerras
mundiales en Unity.
Vale, si queréis evitar una guerra mundial entre un artista y un programador, hacer que el programador
trabaje bien con un rico, recomponen por menos Despidiã gente vale.
Ahora que lo tenéis, que tenéis ese rising body.
Yo puedo venir aquí bien, cómodamente y bien tranquilo y hacer lo siguiente Privat, Ranjit, Body
Player, REB Player.
Puedo crear una variable Rizzi Body y de hecho esta variable rige body.
No tenéis ni por qué asignarlas arrastrando.
Por qué?
Porque el Rising Body pertenece al propio player.
No es otra componente.
My Player Controller es una componente que se encargará de manejarla.
El Rising Body es otra componente que se encargará de la física.
Lo único que tenéis que hacer es estar comunicar a las dos cómo Lella Richy Body es igual a que component
entre diamantes, body puntico.
Esto es básicamente el Abecé Unity.
Si hay algo que tiene que meter en la cabeza es que cada mob puede tener una, dos o 20000 componentes
y que podéis comunicar una componente con otras haciendo uso de componente.
Esto es básico porque fijaros que ahora mi Player Controller conoce acerca del Rizzi Body que estáis
seguros que tiene vuestro bitmap.
Y no sólo conoce, sino que sabe dónde está porque habéis hecho que componen.
Si yo no le hubiera puesto un rising body y agua que componen, qué me hubiera pasado?
Me hubiera dado un error, un error de ejecución o un error de los de color rojo, de los que PETA vale
porque le estaría diciendo dame, dame el body y el motor directo es tonto, no body.
Vale, entonces esto, como os he dicho, acaba de salvar una guerra mundial.
Si no, hubiera matado a un gatito o algo así.
Por tanto, ahora que tenéis el Rising Body lo podremos utilizar donde queráis, en el estar, en el
Android, etcétera, y en particular para hacer la prueba.
Ahora dentro del estar ya vemos a nuestro Pledge Richy Body y vamos a aplicarle una fuerza para aplicar
una fuerza que es la base de toda la física.
Se utiliza un método llamado fours?
Vale.
Luego veremos que hay diferentes tipos de fuerza, pero Force es la más básica y hay que especificar
hacia dónde queréis la fuerza.
Por ejemplo, para saltar en cuál de las seis direcciones hay que aplicar la fuerza hacia arriba y hacia
arriba era vector.
3.ª.
Lo que pasa es que, claro, esto es un vector, el vector apenas cero uno cero.
Esto querría decir aplicar una fuerza de un Newton hacia arriba, una fuerza de un Newton en menos de
un soplido.
Lo digo porque si esperáis que salte está un poco jodido.
Recordad que la ecuación de la fuerza es fuerzas igual a masa por aceleración.
Si.
Entonces, si la fuerza que aplicamos es de un Newton, el personaje ni se va a mover porque creo que
pesa un kilo.
Vamos a darle una fuerza considerable.
Multiplicate El vector AP por mil a lo bestia.
El vector cero uno cero multiplicado por mil se convierte en el vector cero cero y esto quiere decir
que ahora, nada más empezar.
Mi jugador se le aplicará una fuerza, una fuerza para arriba de 1000.
De hecho, os habéis fijado que en el Mario Bros siempre empieza saltando?
Es precisamente para saber que todo había sido configurado correctamente, yo creo que lo dejaron,
pero era muy fácil porque cada vez que empieza el nivel aparece saltando como de la nada en plan aquí
estoy.
Qué pasa?
Es exactamente esto.
Cuando empieza el estar se le aplica una fuerza pa arriba.
Vamos a ver si la fuerza es mucho.
Igual me acabo mandando el granjero a la luna.
Entonces le dais al play y deberíais ver esto.
Voy a tomar por culo el granjero y cae y le pesa el culo y se cae.
Lo veis, pero para que veáis la fuerza parece que funciona.
Cosas que ahora podéis probar.
El body como objeto físico tiene una masa.
Acordaros que os acabo de decir que fuerzas masa por aceleración.
Si yo le doy una fuerza de mil newtons y pesa un kilo.
La aceleración es de 1000 metros por segundo cuadrado, que es lo que le ha pasado que se ha ido a Mordor.
Si yo hago de granjero, este sea gordoa de que pesa 100 kilos con la misma fuerza de 1000 newtons.
Cabe esperar que ahora la aceleración será mucho menor y que el salto será que casi ni se nota.
Vale.
La fuerza de 10 newtons es mucho más pequeña.
Recordad que en todo momento tenéis la gravedad que os tira para abajo.
Lo digo porque la fuerza de 10 newtons en la fuerza de 1000 newtons a un objeto de 100 kilos supondría
una aceleración de 10 metros por segundo cuadrado.
Pero la gravedad me tira para abajo con una aceleración de menos 9,8 metros por segundo cuadrado.
La aceleración limpia es de 0,2, un poco menos.
Vale entonces pensar que las fuerzas se suman.
Son vectores de una fuerza que me estira para allá y otra que me estira para acá.
La resta es la que sobrevive.
Incluso si hay una que me estira para allá y otra que tira para allá, sería la resultante.
Sería la suma de vectores.
Hay alguien que no haya suma vectores en su vida?
No asumas nunca vectores.
Si un vector será una flecha, va para allá y la otra va para allá.
La sumaba en diagonal, es la suma de las dos piernas.
De hecho, el teorema de Pitágoras en tu vida.
Cuando era joven.
Pues eso, teorema de Pitágoras.
Si uno va patear el otro, es la hipotenusa la que cuenta vale.
Lo digo porque cuando sumas vectores es lo que os va a pasar aquí, en las fuerzas que vais a tener,
en la fuerza de la gravedad que siempre se estira para abajo.
Ahora tenéis la que os manda para arriba, la que os va a mover para alante, la que os va a frenar
para atrás.
Debido al rozamiento tendréis un montón de fuerzas que irán interactuando las unas con las otras.
Vale, entonces siempre es la fuerza resultante la que se aplica de acuerdo.
Esto es un principio de la dinámica.
Vale, pues aquí, por ejemplo, si el personaje pesara 20 kilos, una cosa entre medias, pues la fuerza
que aplicó 1000 entre 20 ha saltado muy poco.
Le sigue pesando el culo a 2120 también?
Es que es poquito, poquito, teniendo en cuenta la gravedad que tenemos.
A ver si le coloco 10 10 ya debería ser más palpable.
Con 3 ya le vale con 3 kilos.
A ver, luego lo configuramos.
Perfecto.
Tranquilos, ya basta.
Perfecto.
Aquí ya podéis echar un vistazo a cómo queda el personaje y cómo salta en particular una cosa muy importante
a nivel de optimización, muy importante.
Veis que cuando yo he necesitado el Rising Body 1, la variable es global 2 la asigno en el estar y
3 aquí la ha utilizado aquí, pero la podría utilizar en la de la podría utilizar en cualquier lado.
Pero lo que es muy importante es que esta variable solo es asignada al inicio.
A partir de aquí la podéis utilizar cuando queráis.
Me da igual cuando en el Abdellatif acordaros como en Impugne caida. que da un poco de punto.
Espais Cuando pulsas el espacio en blanco quiero que salte perfecto, me llevo el código este para acá
y a correr, pero lo que nunca haríais sería esto.
Prohibido hacer un jet component dentro de la Apdayc, porque cada vez que pasareis por el Apdayc a
cada fring le estariais forzando al motor de Unity a buscar otra componente, asociarla a la variable
Play Rivoli Body y luego utilizarla.
Esto de aquí es costoso.
Esto es como si os digo mira, encima de la mesa hay un euro, empezará a buscarlo y os lo digo, que
lo hagáis a cada.
Es más fácil que lo hagáis al inicio y que lo metes en una cartera para no perderlo.
Pues aquí lo mismo.
Esto es motivo de que te echen de una empresa, vale.
O sea, esto es el pecado.
Capital número 1.
No hay nada peor que esto.
Tanto es así que si alguna vez os hacéis el examen de hay siete u ocho preguntas que todos van enfocados
a malas prácticas en Unity.
Esto es una mala práctica de Unity.
A ver, funciona y funciona, pero esto chupa recursos.
Vale muchos.
Entonces, siempre que necesitáis acceder a algo externo y no solo vale para rising bodys, vale para
cualquier componente el sonido, los colíderes, el rising body.
Me da igual cualquier cosa.
Las variables se crean aquí fuera.
Se crean privadas, además, nuevas áreas públicas, porque si no alguien nos puede cambiar el chip.
A pesar de haber puesto el componente, viene un código de fuera, te quita el rising bodhi, atraviesas
todas las paredes.
Seguro que habéis visto oax. en más de un juego que podéis atravesar paredes.
Cosas de este estilo privada se asigna en el START y haceis uso de ella donde os de la gana en particular.
Ahora tal cual os lo acabo de escribir.
Aquí lo que hacemos es pasar la funcionalidad.
Alasdair pero fijaros que yo solo la asigno una vez, una y solo una.
Recordad el estar solo se ejecuta en el primer Freundt.
El trabajo pesado, el buscar el euro lo haceis una vez, pero una vez lo tenéis lo metes en la cartera,
lo metes en la variable y esa variable ya es utilizable para el resto del código.
Esto quiere decir que ahora, cuando venga aquí y le dé al play, el personaje no va a saltar.
Al inicio solo se va a caer y cuando pulse la tecla de espacio va a saltar OEIS y de hecho ejercicio
para vosotros.
Qué pasa si pulso 3 veces el espacio?
Tengo efecto Jetpac y la hostia que se va a pegar va a ser gorda cuando le mandó.
Bueno, sigue subiendo, baja, baja, fijaros la altura baja, creo que atraviesa al suelo y.
La atravesaba porque a la velocidad que iba igual rompía el suelo, tomais.
O sea, fijaros que ahora está doblado.
Qué pasará cuando salte salto de lado?
Vale.
Hace dominadas este tío?
Lo veis?
Sí, entonces.
Bueno, para que veáis cómo se asigna una vez el Rising Body una y solo una.
Y a partir de aquí yo puedo hacer uso en el andén y en el colíder en cualquier lado.
Vale, queda claro que.