Buenas, primero buen video, segundo, me gustaría usar el paquete de sprites que dejas, ya que me parece muy bonito, el caso es que los sprites son muy muy pequeños a comparación de todos los escenarios que tengo, como podria ajustar todos los sprites a un tamaño ideal? o vicebersa, un saludo.
Hola, una solución rápida podría ser modificar los píxeles por unidad que tienen las imágenes, cuando seleccionas el objeto en tu carpeta se abre una ventana en el inspector donde puedes modificar este valor para tener el tamaño que necesites
@@BravePixelG Si gracias, ya resolví :) Por cierto, hay video anterior de este? porque a mi me ha terminado funcionando raro, del lado izq si se agarra bien y se desliza poco a poco hacia abajo, pero del lado derecho se desliza hacia arriba cuando pulso la D, veo que tienes muchas cosas que estan sin explicar y me pregunto si tienes el video previo a este, porque hay muchas cosas que tienes que no sé porque es así ya que estoy empezando. Un saludo
@@zottden4970 Hola, todo lo que se ve en el video tiene como base el video del canal sobre movimiento y salto en 2D, pero todo debe ser acoplado según tu código, normalmente debes tener en cuenta cuáles son las entradas de controles y las diferentes acciones que hace tu personaje para que funcione bien, aquí te dejo el video: th-cam.com/video/rQe9GAw5dm4/w-d-xo.html
bro una pregunta que pasa si tengo la animación de caída del otro video de como hacer animaciones 2d, en tu video solo hay animación de salto y no de caída y cuando hago lo mismo que tu me queda con el deslizado todo normal pero al momento de saltar y caer no se mueve
Hola, la manera en la que lo tenemos en el video es con un Blend Tree para elegir la animación de subida y de bajada, si no lo quieres usar con esta herramienta debes tener una transición que te ayude a moverte entre las dos que tienes, ya sea con el parámetro con el que detectas la pared o en el movimiento para arriba o abajo de tu animación de salto, aquí te dejo un video del canal sobre Blend Trees: th-cam.com/video/fm61Y-gJWss/w-d-xo.html
hola, tengo una pregunta, cuando el personaje se agarra a la pared, el jugador tiene que presionar a la derecha para que vaya a la izquierda al saltar y viceversa, ya que si no se presiona nada, el personaje solo va hacia arriba, hay algunaforma de evitar que vaya hacia arriba si no se presiona hacia los lados?
Hola, es posible que el error se deba a la manera en la que detectas el suelo, en la manera en la que lo tenemos en el video es que el objeto que detecta el suelo debajo del personaje es más pequeño que el colisionador del jugador, entonces es posible que el colisionador del suelo esté tocando la pared y por eso permite el salto para arriba, porque la condición que tenemos para que el personaje se deslice en la pared es que si o si la entrada en X sea diferente de 0, entonces si es 0 no debe generar el salto en la pared
Muy buen tutorial. Te quería preguntar si hay alguna diferencia entre saber si el player esta tocando la pared con una caja como lo hiciste vos o haciéndolo con un Physics2D.Raycast que detecte si toco una capa pared (un método similar a cuando hacemos el recorrido de enemigos por plataformas). Saludos!
A grandes rasgos ambos cumplen con la misma función en ambos ejemplos, en la documentación de cada uno puedes encontrar muchas de las diferencias que tienen estos métodos y en que casos se pueden usar, pero en general podemos decir que es la forma lo que los diferencian
Tus videos estan excelentes, pero una recomendacion, porque no creas listas enumeradas, es para ver la secuencia de los videos para no perdernos,gracias
parce muchas gracias, per tengo un pequeño problema. Lo que pasa es que cunado toco la pared manteniendo la "d" el personaje se queda pegado, mientras que si cambio esto "-velocidadDeslizar" por esto "velocidadDeslizar", todo funciona bien, el problema es que funciona para arriba (aclaro que yo no quiero que el salte, sino que tan solo se deslice) (por cierto: ya logre que no saltara cuando toca la pared creando otra capaxd)
una pregunta que pasa si mi mi animación de deslizado es hacia el lado derecho y no al izquierdo como el tuyo hay algún modo de que se puede cambiar el sitio en el mismo unity porque lo quise cambiar manualmente y cuando lo probé el personaje casi todo el cuerpo al momento de hacer la animación se metía a la pared
Hola, una manera en la que puedes hacerlo es directamente en la animación, tomar el componente del sprite renderer y darle flip en X o Y según necesites, pero es mejor que lo tengas directamente en tu hoja de sprites, que no requiera de un procesamiento extra a la hora de hacer las animaciones
muchas gracias por la ayuda, pero sigo con una duda, ¿como puedo hacer que al pulsar una tecla por poco tiempo haga una cosa pero al pulsar la misma tecla por mas tiempo haga otra cosa totalmente diferente?
El funcionamiento puede ser similar al que tenemos en el video de disparo cargado, te lo dejo aquí abajo, debes tener en cuenta el momento en el que se deja de presionar el botón y el tiempo, entonces esto lo usas como un parámetro, esto lo puedes ver mejor en el video, espero te ayude: th-cam.com/video/Vct9r9cV9x0/w-d-xo.html
hola perdón por molestar pero seguí con el tutorial y me confundo mucho porque tengo que colocar códigos que ya había hecho antes con los tuyos, y me surgió el problema del que si salto en una pared apuntando a esa dirección, el personaje salta infinito para arriba, mi teoría es que al darle saltar no lo empuja al lado contrario al que apunto aunque ya coloqué el -InputX como dijiste, funciona todo bien excepto en eso :/
Puede ser que la detección del suelo esté interfiriendo con la de la pared, si el detector del suelo está tocando la pared puede reconocerse como que está en el suelo
@@BravePixelG mira es asi, solo puedo saltar en pared cuando me deslizo entonces al saltar me empuja contra la misma pared entonces me deja seguir saltando, lo que busco es que me empuje hacia el otro lado pero no me funciona. puse el código: Rb.velocity = new Vector2 (fuerzaSaltoParedX * -InputX, fuerzaSaltoParedY); pero igual nada. nose si puedas pero hay una forma mas forma que nos podamos comunicar mejor si no fuera mucha molestia. alguna red social y asi
@@juliantn10jk41 Puede ser por instagram, pero el problema que tienes puede ser por el detector del suelo, puede que esté tomando también la pared y no deje mover bien al personaje.
@@NekoSensei93 La solución que se dio fue encontrar en el código cuáles son las líneas que generan el movimiento horizontal para restringirlo por un momento para que no interfiera con el movimiento del salto.
Hola, muchas gracias por el video, Y tu forma de explicar se me hace sencilla y al punto (eso es bueno) Lamentablemente tengo un problema. Mi problema es que el juego falla en detectar cuando esta en Pared. El problema en si es que el detecta que esta en pared cuando topa el suelo y deja de detectarlo si salto. Aclarare que ya yo tenia un código de movimiento y lo que hice fue ajustar tu código a que funcionara con el mío, así que no fue como si escribí un código desde Zero, pero tengo certeza que no debería haber nada fuera de lo normal Mi código usaba Rayaste para detectar cuando topo el suelo, como ya tenia un estado "onGround" simplemente use eso, y para detectar pared use el DrawWireCube como hiciste. Pero no veo porque detecta pared al topar el suelo y no cuando toco con la caja. He leído abajo que esto les ha pasado a algunos, ya he revisado mi código de arriba a abajo y no veo algo que indique que este mal. Se te ocurre algún consejo? Es posible que me puedas ayudar?
Hola, lo que se me ocurre es que puedas probar ambos sistemas, pero de manera aislada, ver si puede detectar de buena manera el suelo y de manera separada la pared, puede que uno de los objetos que detectan la colisión esté en el espacio del otro, o que al momento de colisionar con la pared genere un conflicto sobreescribiendo otro espacio en el código y que el error sea por la implementación de ambos códigos
@@BravePixelG Entendido. Intentare cambiar la deteccion de suelo a Caja y tambien intentare cambiar la deteccion de pared a Raycast y asi pruebo ambos metodps, gracias
@@BravePixelG Ya lo solucione, no habia nada de malo con los metodos de confirmar suelo o pared, solo que por error tenia el Booleano de "IsWallSliding" A Verdadero si esta tocando suelo, no me fije y paso desaparcibido. Gracias por la ayuda
Tengo un problema, al momento de poner mi personaje en la pared este lo cuenta como si fuera el suelo y no se efectúa la animación Que hago en este caso?
Hola, puede ser por la manera en la que detectas el suelo, si el detector del suelo está tocando la pared no puede dar el efecto, debe estar separado y que no se sobreponga uno con el otro
Todo me salio bien pero tuve problemas cuando hago el salto en la pared mi jugador no hace flip y parece que salta de espaldas, como puedo solocuionar esto?
Hola, es posible que el problema sea por la rotación del personaje cuando está saltando, en el caso del video el objeto siempre está mirando en la dirección de la pared, pero la animación está al contrario para que mantenga esta lógica, entonces puedes modificar la rotación del objeto en el momento del salto o puedes modificar las imágenes, esto depende de tu código, pero en rasgos generales necesitas mantener diferentes imágenes funcionando según las rotaciones del objeto y las acciones que esté realizando
@@BravePixelG la rotación la hago mediante la escala y a mi animacion de deslizar en pared le tuve que poner un flip por que miraba al otro lado, no se si eso tenga que ver
Una manera de hacerlo puede ser con Raycast, un espacio en la parte superior del personaje que detecte si tiene o no suelo al frente y otro espacio debajo de él, cómo el que detecta la pared en el video, entonces si detecta la pared, pero en la parte superior no la detecta entonces que se quede quieto, ya el resto depende de lo que necesites, pero esa sería la lógica
tengo un problema cuando deja de tocar la pared sigue deslizándose y cae en cámara lenta, sabes cual es el problema? como que no detecta que deja de tocar la pared
Hola, pueden ser un par de cosas, pero la primera es estar seguros de la que dices de detectar la pared, ¿el booleano que controla si está tocando la pared mantiene en verdadero aun cuando está alejado de una?
@@juliantn10jk41 Me refiero al booleano que llamamos enPared, si está detectando que tiene una pared cuando está lejos puede que ese sea el primer problema.
hola bro me sale un error:Cannot implicitly convert type 'UnityEngine.Vector2' to 'UnityEngine.Rigidbody2D' a la hora de escribir este codigo if (deslizando) { rb2D = new Vector2(rb2D.velocity.x,Mathf.Clamp(rb2D.velocity.y, -velocidadDeslizar, float.MaxValue)); }
Hola, para comprender un poco mejor las animaciones, te recomiendo empezar por un video propio del tema, en el canal tenemos uno, te lo dejo aquí abajo: th-cam.com/video/I2D_nx7MbbQ/w-d-xo.html
Tus videos siempre me ayudan a recordar cosas que se me olvidaron
Muchas gracias bro, el tutorial me sirvió increíble!
Este tipo es todo un genio, sin dudas se merece un apartado en los créditos de mi juego
saludos profesor, gracias lo vere con detellimiento , saludos desde Perú
Un gran saludo
uffff, esta noche lo pongo en practica en mi juego, gracias.
Que buen tutorial muchas gracias!
Mucshisimas gracias por el tutorial eres un crack ;)
Gracias Amigo, excelente tutorial 👌
Muy bueno🙂
joya hermanito
mi chileno favorito anasheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
podrías dejar el código completo subido en la descripción o algo así.
Buenas, primero buen video, segundo, me gustaría usar el paquete de sprites que dejas, ya que me parece muy bonito, el caso es que los sprites son muy muy pequeños a comparación de todos los escenarios que tengo, como podria ajustar todos los sprites a un tamaño ideal? o vicebersa, un saludo.
Hola, una solución rápida podría ser modificar los píxeles por unidad que tienen las imágenes, cuando seleccionas el objeto en tu carpeta se abre una ventana en el inspector donde puedes modificar este valor para tener el tamaño que necesites
@@BravePixelG Si gracias, ya resolví :) Por cierto, hay video anterior de este? porque a mi me ha terminado funcionando raro, del lado izq si se agarra bien y se desliza poco a poco hacia abajo, pero del lado derecho se desliza hacia arriba cuando pulso la D, veo que tienes muchas cosas que estan sin explicar y me pregunto si tienes el video previo a este, porque hay muchas cosas que tienes que no sé porque es así ya que estoy empezando. Un saludo
@@zottden4970 Hola, todo lo que se ve en el video tiene como base el video del canal sobre movimiento y salto en 2D, pero todo debe ser acoplado según tu código, normalmente debes tener en cuenta cuáles son las entradas de controles y las diferentes acciones que hace tu personaje para que funcione bien, aquí te dejo el video:
th-cam.com/video/rQe9GAw5dm4/w-d-xo.html
bro una pregunta que pasa si tengo la animación de caída del otro video de como hacer animaciones 2d, en tu video solo hay animación de salto y no de caída y cuando hago lo mismo que tu me queda con el deslizado todo normal pero al momento de saltar y caer no se mueve
Hola, la manera en la que lo tenemos en el video es con un Blend Tree para elegir la animación de subida y de bajada, si no lo quieres usar con esta herramienta debes tener una transición que te ayude a moverte entre las dos que tienes, ya sea con el parámetro con el que detectas la pared o en el movimiento para arriba o abajo de tu animación de salto, aquí te dejo un video del canal sobre Blend Trees:
th-cam.com/video/fm61Y-gJWss/w-d-xo.html
muy buena!
hola, tengo una pregunta, cuando el personaje se agarra a la pared, el jugador tiene que presionar a la derecha para que vaya a la izquierda al saltar y viceversa, ya que si no se presiona nada, el personaje solo va hacia arriba, hay algunaforma de evitar que vaya hacia arriba si no se presiona hacia los lados?
Hola, es posible que el error se deba a la manera en la que detectas el suelo, en la manera en la que lo tenemos en el video es que el objeto que detecta el suelo debajo del personaje es más pequeño que el colisionador del jugador, entonces es posible que el colisionador del suelo esté tocando la pared y por eso permite el salto para arriba, porque la condición que tenemos para que el personaje se deslice en la pared es que si o si la entrada en X sea diferente de 0, entonces si es 0 no debe generar el salto en la pared
Muy buen tutorial. Te quería preguntar si hay alguna diferencia entre saber si el player esta tocando la pared con una caja como lo hiciste vos o haciéndolo con un Physics2D.Raycast que detecte si toco una capa pared (un método similar a cuando hacemos el recorrido de enemigos por plataformas). Saludos!
A grandes rasgos ambos cumplen con la misma función en ambos ejemplos, en la documentación de cada uno puedes encontrar muchas de las diferencias que tienen estos métodos y en que casos se pueden usar, pero en general podemos decir que es la forma lo que los diferencian
@@BravePixelG gracias por tu tiempo, saludos!
Tus videos estan excelentes, pero una recomendacion, porque no creas listas enumeradas, es para ver la secuencia de los videos para no perdernos,gracias
parce muchas gracias, per tengo un pequeño problema. Lo que pasa es que cunado toco la pared manteniendo la "d" el personaje se queda pegado, mientras que si cambio esto "-velocidadDeslizar" por esto "velocidadDeslizar", todo funciona bien, el problema es que funciona para arriba (aclaro que yo no quiero que el salte, sino que tan solo se deslice) (por cierto: ya logre que no saltara cuando toca la pared creando otra capaxd)
a qué se refiere con "-inputX"? me refiero a la variable en sí o lo que sea, tengo los nombres distintos en mi proyecto
una pregunta que pasa si mi mi animación de deslizado es hacia el lado derecho y no al izquierdo como el tuyo hay algún modo de que se puede cambiar el sitio en el mismo unity porque lo quise cambiar manualmente y cuando lo probé el personaje casi todo el cuerpo al momento de hacer la animación se metía a la pared
Hola, una manera en la que puedes hacerlo es directamente en la animación, tomar el componente del sprite renderer y darle flip en X o Y según necesites, pero es mejor que lo tengas directamente en tu hoja de sprites, que no requiera de un procesamiento extra a la hora de hacer las animaciones
muchas gracias por la ayuda, pero sigo con una duda, ¿como puedo hacer que al pulsar una tecla por poco tiempo haga una cosa pero al pulsar la misma tecla por mas tiempo haga otra cosa totalmente diferente?
El funcionamiento puede ser similar al que tenemos en el video de disparo cargado, te lo dejo aquí abajo, debes tener en cuenta el momento en el que se deja de presionar el botón y el tiempo, entonces esto lo usas como un parámetro, esto lo puedes ver mejor en el video, espero te ayude:
th-cam.com/video/Vct9r9cV9x0/w-d-xo.html
hola perdón por molestar pero seguí con el tutorial y me confundo mucho porque tengo que colocar códigos que ya había hecho antes con los tuyos, y me surgió el problema del que si salto en una pared apuntando a esa dirección, el personaje salta infinito para arriba, mi teoría es que al darle saltar no lo empuja al lado contrario al que apunto aunque ya coloqué el -InputX como dijiste, funciona todo bien excepto en eso :/
Puede ser que la detección del suelo esté interfiriendo con la de la pared, si el detector del suelo está tocando la pared puede reconocerse como que está en el suelo
@@BravePixelG mira es asi, solo puedo saltar en pared cuando me deslizo entonces al saltar me empuja contra la misma pared entonces me deja seguir saltando, lo que busco es que me empuje hacia el otro lado pero no me funciona.
puse el código:
Rb.velocity = new Vector2 (fuerzaSaltoParedX * -InputX, fuerzaSaltoParedY);
pero igual nada.
nose si puedas pero hay una forma mas forma que nos podamos comunicar mejor si no fuera mucha molestia.
alguna red social y asi
@@juliantn10jk41 Puede ser por instagram, pero el problema que tienes puede ser por el detector del suelo, puede que esté tomando también la pared y no deje mover bien al personaje.
@@BravePixelG me pasa lo mismo... hubo solución?
@@NekoSensei93 La solución que se dio fue encontrar en el código cuáles son las líneas que generan el movimiento horizontal para restringirlo por un momento para que no interfiera con el movimiento del salto.
Hola, muchas gracias por el video, Y tu forma de explicar se me hace sencilla y al punto (eso es bueno)
Lamentablemente tengo un problema.
Mi problema es que el juego falla en detectar cuando esta en Pared. El problema en si es que el detecta que esta en pared cuando topa el suelo y deja de detectarlo si salto.
Aclarare que ya yo tenia un código de movimiento y lo que hice fue ajustar tu código a que funcionara con el mío, así que no fue como si escribí un código desde Zero, pero tengo certeza que no debería haber nada fuera de lo normal
Mi código usaba Rayaste para detectar cuando topo el suelo, como ya tenia un estado "onGround" simplemente use eso, y para detectar pared use el DrawWireCube como hiciste.
Pero no veo porque detecta pared al topar el suelo y no cuando toco con la caja. He leído abajo que esto les ha pasado a algunos, ya he revisado mi código de arriba a abajo y no veo algo que indique que este mal.
Se te ocurre algún consejo? Es posible que me puedas ayudar?
Hola, lo que se me ocurre es que puedas probar ambos sistemas, pero de manera aislada, ver si puede detectar de buena manera el suelo y de manera separada la pared, puede que uno de los objetos que detectan la colisión esté en el espacio del otro, o que al momento de colisionar con la pared genere un conflicto sobreescribiendo otro espacio en el código y que el error sea por la implementación de ambos códigos
@@BravePixelG Entendido. Intentare cambiar la deteccion de suelo a Caja y tambien intentare cambiar la deteccion de pared a Raycast y asi pruebo ambos metodps, gracias
@@BravePixelG Ya lo solucione, no habia nada de malo con los metodos de confirmar suelo o pared, solo que por error tenia el Booleano de "IsWallSliding" A Verdadero si esta tocando suelo, no me fije y paso desaparcibido. Gracias por la ayuda
Tengo un problema, al momento de poner mi personaje en la pared este lo cuenta como si fuera el suelo y no se efectúa la animación
Que hago en este caso?
Hola, puede ser por la manera en la que detectas el suelo, si el detector del suelo está tocando la pared no puede dar el efecto, debe estar separado y que no se sobreponga uno con el otro
@@BravePixelG Muchas gracias, ya lo me salió bien
Todo me salio bien pero tuve problemas cuando hago el salto en la pared mi jugador no hace flip y parece que salta de espaldas, como puedo solocuionar esto?
Hola, es posible que el problema sea por la rotación del personaje cuando está saltando, en el caso del video el objeto siempre está mirando en la dirección de la pared, pero la animación está al contrario para que mantenga esta lógica, entonces puedes modificar la rotación del objeto en el momento del salto o puedes modificar las imágenes, esto depende de tu código, pero en rasgos generales necesitas mantener diferentes imágenes funcionando según las rotaciones del objeto y las acciones que esté realizando
@@BravePixelG la rotación la hago mediante la escala y a mi animacion de deslizar en pared le tuve que poner un flip por que miraba al otro lado, no se si eso tenga que ver
cómo se podría hacer una mecánica de agarrarse al borde en un juego 2d?
Una manera de hacerlo puede ser con Raycast, un espacio en la parte superior del personaje que detecte si tiene o no suelo al frente y otro espacio debajo de él, cómo el que detecta la pared en el video, entonces si detecta la pared, pero en la parte superior no la detecta entonces que se quede quieto, ya el resto depende de lo que necesites, pero esa sería la lógica
tengo un problema cuando deja de tocar la pared sigue deslizándose y cae en cámara lenta, sabes cual es el problema? como que no detecta que deja de tocar la pared
Hola, pueden ser un par de cosas, pero la primera es estar seguros de la que dices de detectar la pared, ¿el booleano que controla si está tocando la pared mantiene en verdadero aun cuando está alejado de una?
@@BravePixelG si, el booleano del animator se activa al momento de saltar y darle a una dirección horizontal
@@BravePixelG sabes que hay que hacer ahi?
@@juliantn10jk41 Me refiero al booleano que llamamos enPared, si está detectando que tiene una pared cuando está lejos puede que ese sea el primer problema.
@@BravePixelG creo que ese es el problema porque esta todo el tiempo activado :/
hola bro me sale un error:Cannot implicitly convert type 'UnityEngine.Vector2' to 'UnityEngine.Rigidbody2D' a la hora de escribir este codigo if (deslizando)
{
rb2D = new Vector2(rb2D.velocity.x,Mathf.Clamp(rb2D.velocity.y, -velocidadDeslizar, float.MaxValue));
}
tienes que poner rb2D.velocity al principio ;)
Ayudaaaaa, no entiendo como creaste la animación
Hola, para comprender un poco mejor las animaciones, te recomiendo empezar por un video propio del tema, en el canal tenemos uno, te lo dejo aquí abajo:
th-cam.com/video/I2D_nx7MbbQ/w-d-xo.html
Bro vas muy rápido :/
agradecería que fuera un poco más lento.