Joder, como amo este canal. Actualmente estoy estudiando una ingenieria en desarrollo de videojuegos y mi proyecto final es un juego 2d y tus videos me han ayudado muchisimo, gracias, deberias de ser mas conocido, explicas muy bien y no omites ningun paso, te amo.
Uff amigo mil gracias, habia estado batallando por el uncheck del loop time, un error a lo mejor tonto pero como me hizo buscarle en mi codigo y sin querer voy revisando la cajita y eso me soluciono mi animacion jejeje mil gracias!!
Hola, el problema que muestras es porque creaste sin querer un evento dentro tu animación, estas se crean en la barra de animación dando clic en la flecha que sale al lado de los frames, puedes quitarla de la misma manera o dando clic sobre ella y borrándola.
Hola, yo a la hora de iniciar el juego despues de seguir el tutorial me aparece automaticamente como si terminara la animacion de salto y asi se queda y no me permite saltar de nuevo, ya repeti el tutorial 2 veces y me sigue pasando lo mismo, cuando quito la animacion de salto las demas funcionan perfectamente, alguna solucion por favo?
Excelente contenido, muy claro y explicativo, felicidades, estoy tratando de integrarlo pero como vengo de tu vídeo del nuevo input system no he podido hacerlo con la variable de dirección ya que es vector2, tienes de casualidad algún consejo para aplicarlo en ese caso específico? mil gracias.
Hola, puedes usar la variable de dirección sin ningún problema, la diferencia es que el horizontal y vertical están en el vector 2 con X y Y, entonces para el movimiento horizontal puedes usar direccion.X
Dia 3: mi personaje ya mantuvo el idle y el movimiento pero al momento de implementar el salto se queda con la animacion de salto como si fuera la que esta por defecto (y nisiquiera salta) pero eso ya sera un problema para mañana
hola disculpa que te moleste pero en mis animaciones ya esta todo hecho pero cuando lo juego no reacciona las animaciones no me equivoque en las mayúsculas ni en nada del tutorial no se ve las barras de las caida ni de salto al momento de jugar
Hola, cuando dices que no reacciona, ¿es que no ejecuta ninguna animación o solo no se ven las barras?, porque si es lo segundo puede ser que no tengas seleccionado al personaje, pero si al animator, entonces puedes editarlo, pero no ver el funcionamiento exacto del personaje, si no es esto tendríamos que ver si hay algún error en la consola o alguna advertencia
En mi caso no cuento con un spritesheet sino mas bien sprites por separado. Por ejemplo: 7 sprites que conforman la animación iddle... los agrego a unity y al momento de crear la animación ésta no va fluida sino que algunos sprites se desubican. Hay alguna manera de corregir eso en unity?
Hola !!gracias por tus videos¡¡ he visto muchos tutoriales y solo veo gente que importa archivos psd ¿pero no se puede usar un archivo png? estoy intentando animar una planta que he hecho con una sola capa y me deja ponerle los huesos pero cuando paso a escena los huesos no me aparecen, gracias por la ayuda.
Hola, si el problema solo es de la animación, es posible que sea por un problema en la manera en la que se le envía la información desde el script al Animator, es posible que esté mal escrita la variable o que no esté tomando la referencia, esto puede salir como una advertencia o un error en la consola, si el problema es directamente en el script de movimiento, debes revisar cuáles son las capas que reconoce como suelo y revisar si la caja que se dibuja para detectar el suelo tiene la posición y proporciones correctas para tu juego
otra consulta, ya voy en la parte de crear tilemaps, y despues de dicho tutorial al avanzar con mi personaje da 2 pasos de animacion y se congela la animacion, pero sigue avanzando, me gustaria saber que puedo hacer en ese caso
Hola, es posible que en la animación no tengas marcado la palomita de loop, entonces se queda en el último cuadro, o es posible que el tilemap no esté marcado como suelo, entonces no hace la animación cuando está moviéndose
Hola, esto es por la manera en la que giramos al jugador, cuando cambiamos completamente su rotación también lo hacen las animaciones, en el vídeo del movimiento 2D lo hicimos o tenemos un vídeo en el que mostramos varias maneras de girar al jugador, te lo dejo aquí: ua-cam.com/video/7m3rU6uWX6E/v-deo.html
mi animacion tiene direccion hacia la derecha, pero cuando muevo el jugador hacia la izquierdaa la animacion sigue apuntando hacia la derecha, que puedo hacer? ;(
Hola, puedes intentar modificando la rotación del personaje en el script de movimiento, para que solo tengas una animación de movimiento y funcione para ambos lados, tenemos un video donde explicamos varias maneras de girar al personaje, te lo dejo aquí abajo: ua-cam.com/video/7m3rU6uWX6E/v-deo.html
hola bro, soy yo despues de meses, y queria consultarte el porque mi personaje al momento de iniciar, se queda congelado en la animacion de salto y desde ahi no puedo hacer nada mas
impecable cada tutorial que estas haciendo, te dejo una consulta, porque el player despues de la animacion correr y uno suelta la tecla de correr hace como un patinado en el piso ? hasta que la velocidad llega a cero.
Puede ser por varias cosas, si lo que estás usando para controlar la animación es la velocidad del rigidbody puede que la condición tenga un valor muy alto para cambiar de estado, también puede ser por el tiempo de salida y la duración de la transición, en este tipo de juegos muchas veces se necesita de manera instantánea para que no ocurran este tipo de errores, todo depende de cuál es el efecto que necesitas y como se acopla a las condiciones de tu animator
@@BravePixelG gracias por la respuesta, de momentos segui al pie de la letra el tuto solo que con otra graficos, solucione sacando el material del colider del player, saque tambien todos los tiempos entre animaciones ..en resumen pasa a idle pero hace un pequeño desliz hasta llega a velocidad cero.
Hola, es posible que crearas en la animación un evento por error, si deseas eliminar el evento debes ir a la animación en la línea de tiempo, el evento se ve como una pequeña línea en la parte superior, la seleccionas y la eliminas
ok pero cuando cae queda con la animacion de caida lo muevo hacia adelante y se arregla .pero me gustaria cuando baje se pasara A idle no tener que mover al pesonaje para cambiae el estado,
Hola, el componente de Animator es el que usamos en el video para controlar los comportamientos de las animaciones de nuestro personaje, Animation es un elemento diferente, si te sale error es posible que sea porque en la parte en la que declaras la variable estás tomando Animation en lugar de Animator
una pregunta cuando hago la transición de saltar a idle todo ok, pero cuando hago la transición de saltar a correr ya no me aparece la opción de hacer transición, a que se debe eso?
Hola, posiblemente se deba a un bug que tiene una versión de Unity que no permite generar más transiciones, la única solución puede ser cambiarte de versión
Hola, espero que estés bien, tengo un problema. Al principio del video cuando abres las pestañas de animaciones, y le das a la parte de "player" no me sale el inspector como a ti, he intentado varias cosas y nada, ósea, no se como llegar al panel ese de inspector en el que estas en el segundo 0.59, a mi no me aparece en el Assets de abajo, el "player". ¿Sabes que puedo hacer?
Hola, el objeto en la carpeta es una imagen, esta tiene las pequeñas imágenes que componen la animación, entonces para que te salga el inspector de esta manera debes dar clic sobre una imagen que tengas en tu proyecto para editarla y poder usarla para crear este tipo de animaciones
bro, tengo un problema, yo tengo un metodo aparte para el salto, y al poner esto en el update "animator.SetBool("salto", ProcesarSalto());" , me dice que no se puede convertir de void a bool, que puedo hacer?
Hola, el problema es que estás intentando cambiar un booleano en el animator, pero le estás enviando un método que no retornada nada, por eso el void, tienes varias opciones, debes cambiar ese booleano, ya sea colocando true o false según tu personaje salto o aterrice, si quieres que sea una función la que cambie este valor debe retornar un booleano o puedes usar una variable booleana que controle el salto y asignar esta variable a ese valor en el animator
amigo tengo un problema, no consigo que mi personaje salte (incluso la animacion de caida funciona) pero no consigo que salte y no se como solucionarlo, rehice todo desde cero 2 veces y nada :/
Hola, puede ser por el nombre que tiene el botón que estás usando, recuerda que las mayúsculas y minúsculas son muy importantes, también puede ser por el objeto que detecta el suelo para poder funcionar, debes colocar los objetos que pertenecen al suelo en la capa correspondiente y luego asignarla en el script, estos pueden ser los problemas más frecuentes sobre esto
Estoy haciendo mi primer juego y estoy en etapa de dibujo, no sé si hacer animación clásica o esqueletal, que recomiendas para principiantes? Es para un juego Mobile plataformero
Hola, el principal aspecto a tener en cuenta sería el tiempo que le puedes dedicar a las ilustraciones, normalmente hacer animaciones por huesos es mucho mejor para ahorrar tiempo, ya que solo debes hacer el personaje y centrarte en la animación, mientras que la animación por cuadros puede tomar más tiempo, todo depende de como quieres tu resultado final y la intención de las animaciones
hola no se porque cuando salto mi personaje que da dentro de la pared revise el pivote pero esta en la cabeza del personaje .que puede ser ayuda gracias por los videos.
@@cristiancarrazana3131 Hola, es posible que sea por la manera en la que tienes tu colisionador, en muchas ocasiones la imagen no está centrada, entonces para corregirlo muchas veces movemos el colisionador para un lado, si en algún momento cambia de posición o rotación puede generar estos problemas, intenta centrar las imágenes de tu personaje
@@BravePixelG quiero darte muchas gracias por tus videos que llevo como 2 años intentando aprender y que es difícil la programación en unity .por como tu dices, se puede hacer de diferentes maneras. Y todo lo que yo quería hacer estan en tus videos muchas gracias. Seguiré con mi proyecto. Gracia a ti.
Hola, aquí te dejo el link del paquete, no me había dado cuenta de que no estaba en la descripción, también lo dejé ahí, muchas gracias: assetstore.unity.com/packages/2d/characters/simple-2d-platformer-assets-pack-188518
Hola, lo que puedes hacer es identificar cuáles son las variables más útiles para generar la animación y tomarlas como parámetro, por ejemplo, en el rigidbody puedes encontrar la velocidad en X y en Y, con la velocidad en X puedes saber si tu personaje se está moviendo de forma horizontal y con la velocidad en Y de manera vertical, también debería tener alguna variable que te diga si está saltando, saltó o se encuentra en el aire
@@TheIsma214 Hola, a lo que me refiero es que debes ver cuáles son las variables y valores que representan el movimiento de tu personaje, el más normal es la velocidad del rigidbody, entonces si tienes la variable en el script puedes tomar su valor con rb2D.velocity.x para el movimiento horizontal, y pasas este valor como un parámetro float en el animator, para poder enviarla debes crear el parámetro en el animator y usar en el código animator.setfloat como se ve en el video, para el salto y todo lo demás depende de tu código y como quieres usar los datos para que se reflejen en la animación
Claro, tenemos varios de enemigos según el tema, el mas completo es el del jefe: ua-cam.com/video/PaT_43fmT_k/v-deo.html En este tenemos varios de los elementos que preguntas y también tenemos daño cuerpo a cuerpo o por disparos, aquí te dejo uno de ellos: ua-cam.com/video/m8GfeZ2zKEA/v-deo.html
¡Gracias por el video! es muy util. Uso esto para hacer mi animación, pero después de eso tengo que hacer capturas de pantalla de la animación y luego cortar manualmente los bordes porque los programas para borrar el fondo no funcionan del todo bien. ¿Es posible hacer una hoja de sprites directamente en unity de alguna manera? ¡gracias!
Hola, según lo que conozco no es posible, normalmente se usan otro tipo de software para poder editar fácilmente las imágenes y en Unity se usan, se pueden hacer un par de modificaciones en el Sprite Editor, pero son más a nivel funcional para nuestros juegos.
Para seleccionar un grupo de elementos debes seleccionar el primero, luego mientras presionas shift le das clic al último elemento y se seleccionan todos los que estén en medio
No sé si es lo que preguntas, pero si haces más de una transición de un estado a otro, por ejemplo, dos de Idle a correr, se forma un conjunto de transiciones en el inspector donde puedes seleccionarlas de manera independiente y lograr esta transición de maneras distintas
@@BravePixelG hola bro una pregunta al poner el codigo de movimiento de personaje este gira tambien de izquierda a derecha pero al aplicar la animacion de correr este deja de girar a la izquierda y se desplaza mirando solo hacia la derecha alguna solucion?
Una duda si es que alguien me puede responder, estoy haciendo un juego tipo Beat em up y al desplazarlo hacia arriba y abajo sin tocar las teclas de movimiento Horizontal el personaje queda estático, no he podido lograr animar el movimiento de forma vertical, como podría arreglarlo?
Puedes agregar el parámetro de movimiento vertical, entonces puedes colocarlo en el código como la velocidad que tiene tu personaje o si la tecla se está presionando, de la misma manera que de manera horizontal, entonces agregas este parámetro a una transición extra para poder hacer la animación
Puedes seleccionar una y luego mientras presionas "Control" le das clic a las demás, o si quieres todas las de un espacio, seleccionas una y luego presionas "Shift" hasta donde quieres tomarlas
Día 2: ayer no contó porque tuve migraña Este día a sido algo frustrante, todo iba bien hasta que metí con el puñetero código para que al compilarlo en unity marcara 726 errores, al parecer nada de lo que había escrito se encontraba en el script o algo así entendí, investigué por otras fuentes como resolver el problema, algunos decían que tenía que vincular el script, otros que el script estaba duplicado y otros que la carpeta del archivo estaba mal escrito... Menudo lío Ahora me he quedado con solo dos errores (que estoy seguro de que si arreglo me mandará los 700+ errores de antes) algo sobre que el Animator se está intentando ejecutar pero el script no lo encuentra y otro que dice que el controladorSuelo no ha sido declarado... Creo que lo mejor será eliminar todo el avance de hoy y empezar mañana de nuevo
Hola como estás? No sé si llegues a ver mi comentario, pero hasta al momento todo bien, pero cuando salto y el personaje empieza la animación de caer, se revuelve la animacion de caer y correr y se ve como bugueado jaja sabes como puedo evitar esto?
Hola, posiblemente tienes un problema en alguna transición, si la dejas sin ninguna condición o los parámetros coinciden para que se ejecute ambas animaciones puede ocurrir este error, entonces debes revisar si el problema está en el animator o en los parámetros que estás usando desde el código
tengo un problema mi personaje se mueve pero se mueva para la izquierda al iniciar si apreto la d se va para la derecha pero por que se mueve a la izquierda solo te dejo mi codigo: { private Rigidbody2D rb2D; private float movimientoHorizontal = 0f; private Vector3 velocidad = Vector3.zero; private bool mirandoDerecha = true; private bool salto = false; private Animator animator; public bool enSuelo; [SerializeField] private float VelocidadDeMovimiento; [SerializeField] private float suavizandoDeMovimiento; [SerializeField] private float fuerzaDeSalto; [SerializeField] private LayerMask queEsSuelo; [SerializeField] private Transform controladorSuelo; [SerializeField] private Vector3 dimensionesCaja; // Start is called before the first frame update private void Start() { rb2D = GetComponent(); animator = GetComponent(); } // Update is called once per frame private void Update() { movimientoHorizontal = Input.GetAxisRaw("Horizontal") * VelocidadDeMovimiento; animator.SetFloat("Horizontal", Mathf.Abs(movimientoHorizontal)); if (Input.GetButtonDown("Jump")) { salto = true; }
Hola, cuando dices que se mueve es ¿la animación o el personaje? Porque si es la animación puede ser un problema de la configuración del animator, el código parece que está bien, puedes revisar cuáles son las condiciones para que cambie de estado o cuál es la animación inicial
@@CODIGO_GAMER695 Si se mueve solo el personaje puede ser por la superficie, si no es un problema de los controles puedes ver si la superficie en la que está genera algún tipo de fricción o algún elemento que interfiera con el personaje, porque el código parece que está bien
que onda man oye me tira el error supongo que no reconose el salto o algo asi pues cuando cae el personaje se queda en (enSuelo) activado te dejo mi codigo { private Rigidbody2D rb2D; private float movimientoHorizontal = 0f; private Vector3 velocidad = Vector3.zero; private bool mirandoDerecha = true; private bool salto = false; private Animator animator; public bool enSuelo; [SerializeField] private float VelocidadDeMovimiento; [SerializeField] private float suavizandoDeMovimiento; [SerializeField] private float fuerzaDeSalto; [SerializeField] private LayerMask queEsSuelo; [SerializeField] private Transform controladorSuelo; [SerializeField] private Vector3 dimensionesCaja; // Start is called before the first frame update private void Start() { rb2D = GetComponent(); animator = GetComponent(); } // Update is called once per frame private void Update() { movimientoHorizontal = Input.GetAxisRaw("Horizontal") * VelocidadDeMovimiento; animator.SetFloat("Horizontal", Mathf.Abs(movimientoHorizontal)); if (Input.GetButtonDown("Jump")) { salto = true; }
El código está bien, al parecer el error es cuando pasas a Unity e intentas dibujar la caja que funciona para detectar el suelo, solo debes seguir el procedimiento del video para que se dibuje bien la caja y que puedas tener a tu personaje moviéndose, porque probé lo que enviaste y funciona con normalidad.
No, las variables y animaciones deben tener el comportamiento que necesites en tu código, que la animación sea un reflejo de lo que está ocurriendo con tu personaje
Hola, este error se presenta cuando te hace falta una parte del código que funciona como identificador, puede ser que te haga falta un paréntesis, una llave o un punto y coma, en el error te dice que es lo que te hace falta, puedes dar doble clic y te llevará a la línea que genera el error
Joder, como amo este canal. Actualmente estoy estudiando una ingenieria en desarrollo de videojuegos y mi proyecto final es un juego 2d y tus videos me han ayudado muchisimo, gracias, deberias de ser mas conocido, explicas muy bien y no omites ningun paso, te amo.
Tus tutoriales son muy buenos amigo, me han servido mucho para practicar las mecánicas que contienen los videojuegos de plataformas, sigue así.
oye de casualidad no me podrias decir donde puedo hacer mis propios sprites
Uff amigo mil gracias, habia estado batallando por el uncheck del loop time, un error a lo mejor tonto pero como me hizo buscarle en mi codigo y sin querer voy revisando la cajita y eso me soluciono mi animacion jejeje mil gracias!!
Con este vídeo comenzaré a hacer un juego en 2D
Estoy empezando un jueguito de nuevo y tus videos son de increíble ayuda. Segui asi!!!
Demasiado bien explicado y al grano! , bien! felicidades pro tu canal, me suscribo
2do video superado vamos bien :)
Muchas gracias por éste contenido
Muchísimas gracias, tu vídeo ha sido de una inestimable ayuda.
Hola mi pana tengo un problema a mí me tira un mensaje de [18:16:38] 'jugador' AnimationEvent has no function name specified!
Por favor ayúdenme
Hola, el problema que muestras es porque creaste sin querer un evento dentro tu animación, estas se crean en la barra de animación dando clic en la flecha que sale al lado de los frames, puedes quitarla de la misma manera o dando clic sobre ella y borrándola.
buen video compañero muy util
Hola, yo a la hora de iniciar el juego despues de seguir el tutorial me aparece automaticamente como si terminara la animacion de salto y asi se queda y no me permite saltar de nuevo, ya repeti el tutorial 2 veces y me sigue pasando lo mismo, cuando quito la animacion de salto las demas funcionan perfectamente, alguna solucion por favo?
Aparece todo el tiempo que suelo es igual a false, aunque este colicionando con el suelo
Excelente video! (Like!) 👏
Muchas gracias, me alegra que te haya gustado, seguiremos trayendo mucho más contenido.
@@BravePixelG Estoy seguro de que es de gran ayuda para la gente ... Muchos éxitos para ti! 🙏
@ Muchísimas gracias, muchos éxitos para ti también.
@@BravePixelG muchas gracias! 🙌
Excelente contenido, muy claro y explicativo, felicidades, estoy tratando de integrarlo pero como vengo de tu vídeo del nuevo input system no he podido hacerlo con la variable de dirección ya que es vector2, tienes de casualidad algún consejo para aplicarlo en ese caso específico? mil gracias.
Hola, puedes usar la variable de dirección sin ningún problema, la diferencia es que el horizontal y vertical están en el vector 2 con X y Y, entonces para el movimiento horizontal puedes usar direccion.X
@BravePixelG muchas gracias eso hice y funcionó perfectamente
Podrías explicar como crear algún tipo de menú in-game donde el usuario pueda personalizar un personaje 2d como cambiar color o algún tipo de ropa??
4:38 Tengo un problema no me sale la opción de cambiar la velocidad de la animación
En 4:48 explicamos como mostrar este espacio si no lo tienes
Mucas gracias!
Dia 3: mi personaje ya mantuvo el idle y el movimiento pero al momento de implementar el salto se queda con la animacion de salto como si fuera la que esta por defecto (y nisiquiera salta)
pero eso ya sera un problema para mañana
me pasa lo mismo, alguna solucion?
AYUDA. Cuando arrastro los sprites al cuadro de "animation" no me aparecen los rombitos en el timeline. AYUDA
hola disculpa que te moleste pero en mis animaciones ya esta todo hecho pero cuando lo juego no reacciona las animaciones no me equivoque en las mayúsculas ni en nada del tutorial no se ve las barras de las caida ni de salto al momento de jugar
Hola, cuando dices que no reacciona, ¿es que no ejecuta ninguna animación o solo no se ven las barras?, porque si es lo segundo puede ser que no tengas seleccionado al personaje, pero si al animator, entonces puedes editarlo, pero no ver el funcionamiento exacto del personaje, si no es esto tendríamos que ver si hay algún error en la consola o alguna advertencia
Fijate si escribiste Animator y no Animation en el script
puedes hacer un video de como hacer transiciones entre animaciones como al pasar de idle a run haya una pequeña transicion?
En mi caso no cuento con un spritesheet sino mas bien sprites por separado. Por ejemplo: 7 sprites que conforman la animación iddle... los agrego a unity y al momento de crear la animación ésta no va fluida sino que algunos sprites se desubican. Hay alguna manera de corregir eso en unity?
Puedes usar el sprite editor en las imágenes para poder mover el punto de pivote y cambiar el centro de la imagen
Hola !!gracias por tus videos¡¡ he visto muchos tutoriales y solo veo gente que importa archivos psd ¿pero no se puede usar un archivo png? estoy intentando animar una planta que he hecho con una sola capa y me deja ponerle los huesos pero cuando paso a escena los huesos no me aparecen, gracias por la ayuda.
Hola consulta la palomita de en suelo no se me des enmarca cuando salto por ende no me hace la animación.
Hola, si el problema solo es de la animación, es posible que sea por un problema en la manera en la que se le envía la información desde el script al Animator, es posible que esté mal escrita la variable o que no esté tomando la referencia, esto puede salir como una advertencia o un error en la consola, si el problema es directamente en el script de movimiento, debes revisar cuáles son las capas que reconoce como suelo y revisar si la caja que se dibuja para detectar el suelo tiene la posición y proporciones correctas para tu juego
otra consulta, ya voy en la parte de crear tilemaps, y despues de dicho tutorial al avanzar con mi personaje da 2 pasos de animacion y se congela la animacion, pero sigue avanzando, me gustaria saber que puedo hacer en ese caso
Hola, es posible que en la animación no tengas marcado la palomita de loop, entonces se queda en el último cuadro, o es posible que el tilemap no esté marcado como suelo, entonces no hace la animación cuando está moviéndose
@@BravePixelG era lo del loop, muchisimas gracias, se que seras mas grande de lo que ya eres :)
Oye bro cuando mi personaje se mueve se agranda y las imágenes son del mismo tamaño cual es el error
Cómo lo solucionaste?
Como hiciste que la animación de correr cambie de dirrección
Hola, esto es por la manera en la que giramos al jugador, cuando cambiamos completamente su rotación también lo hacen las animaciones, en el vídeo del movimiento 2D lo hicimos o tenemos un vídeo en el que mostramos varias maneras de girar al jugador, te lo dejo aquí:
ua-cam.com/video/7m3rU6uWX6E/v-deo.html
mi animacion tiene direccion hacia la derecha, pero cuando muevo el jugador hacia la izquierdaa la animacion sigue apuntando hacia la derecha, que puedo hacer? ;(
Hola, puedes intentar modificando la rotación del personaje en el script de movimiento, para que solo tengas una animación de movimiento y funcione para ambos lados, tenemos un video donde explicamos varias maneras de girar al personaje, te lo dejo aquí abajo:
ua-cam.com/video/7m3rU6uWX6E/v-deo.html
funciona si en el inspector hago las animaciones?
necesito ayuda pq no entiendo el pq pero coloco todo el codigo que pusiste en el de movimiento y a mi no se me mueve no se porqueeee :c
ayuda, no me apareren los tiles y no me deja poner ningun sprite en el animator
hola bro, soy yo despues de meses, y queria consultarte el porque mi personaje al momento de iniciar, se queda congelado en la animacion de salto y desde ahi no puedo hacer nada mas
ya lo solucione, no tenia activado el "enSuelo", muchas grcias por todos tus conocimientos maquina
impecable cada tutorial que estas haciendo, te dejo una consulta, porque el player despues de la animacion correr y uno suelta la tecla de correr hace como un patinado en el piso ? hasta que la velocidad llega a cero.
Puede ser por varias cosas, si lo que estás usando para controlar la animación es la velocidad del rigidbody puede que la condición tenga un valor muy alto para cambiar de estado, también puede ser por el tiempo de salida y la duración de la transición, en este tipo de juegos muchas veces se necesita de manera instantánea para que no ocurran este tipo de errores, todo depende de cuál es el efecto que necesitas y como se acopla a las condiciones de tu animator
@@BravePixelG gracias por la respuesta, de momentos segui al pie de la letra el tuto solo que con otra graficos, solucione sacando el material del colider del player, saque tambien todos los tiempos entre animaciones ..en resumen pasa a idle pero hace un pequeño desliz hasta llega a velocidad cero.
me sale un proble que dice 'player' AnimationEvent has no function name specified!
Hola, es posible que crearas en la animación un evento por error, si deseas eliminar el evento debes ir a la animación en la línea de tiempo, el evento se ve como una pequeña línea en la parte superior, la seleccionas y la eliminas
Buen video, podrías hacer uno sobre como puedo darle una animación de baile a mi personaje presionando tal botón ?
Hola como mejorar la animación cuando corro y salto se ve es que corro arriba
ok pero cuando cae queda con la animacion de caida lo muevo hacia adelante y se arregla .pero me gustaria cuando baje se pasara A idle no tener que mover al pesonaje para cambiae el estado,
que ventanas ???? osea que tengo que abrir
en la parte de animator = GetComponent(); salta error en unity y e visto que se hase con animator = GetComponent();
Hola, el componente de Animator es el que usamos en el video para controlar los comportamientos de las animaciones de nuestro personaje, Animation es un elemento diferente, si te sale error es posible que sea porque en la parte en la que declaras la variable estás tomando Animation en lugar de Animator
cuando abro animation y le doy a iniciar animacion no me deja y me sale habilitar keyframe recording mode.
como lo puedo solucionar xdddd?
como le hiciste?
Holaa como hago para invertir la animacion al ir a la derecha o izquierda??? solo me anima hacia un sentido
if (MovHorizontal < 0)
{
transform.localScale = new Vector2(-flipx, flipy);
rotar = false;
}
if (MovHorizontal > 0)
{
transform.localScale = new Vector2(flipx, flipy);
rotar = true;
}
añadele eso a tu script y rotara
salu3
una pregunta cuando hago la transición de saltar a idle todo ok, pero cuando hago la transición de saltar a correr ya no me aparece la opción de hacer transición, a que se debe eso?
Hola, posiblemente se deba a un bug que tiene una versión de Unity que no permite generar más transiciones, la única solución puede ser cambiarte de versión
@@BravePixelG si tienes razón lo acabo de probar y era la versión gracias
Hola, espero que estés bien, tengo un problema. Al principio del video cuando abres las pestañas de animaciones, y le das a la parte de "player" no me sale el inspector como a ti, he intentado varias cosas y nada, ósea, no se como llegar al panel ese de inspector en el que estas en el segundo 0.59, a mi no me aparece en el Assets de abajo, el "player". ¿Sabes que puedo hacer?
Hola, el objeto en la carpeta es una imagen, esta tiene las pequeñas imágenes que componen la animación, entonces para que te salga el inspector de esta manera debes dar clic sobre una imagen que tengas en tu proyecto para editarla y poder usarla para crear este tipo de animaciones
@@BravePixelG Listo, ya lo solucione, mil gracias, excelente video, por cierto.
bro, tengo un problema, yo tengo un metodo aparte para el salto, y al poner esto en el update "animator.SetBool("salto", ProcesarSalto());" , me dice que no se puede convertir de void a bool, que puedo hacer?
Hola, el problema es que estás intentando cambiar un booleano en el animator, pero le estás enviando un método que no retornada nada, por eso el void, tienes varias opciones, debes cambiar ese booleano, ya sea colocando true o false según tu personaje salto o aterrice, si quieres que sea una función la que cambie este valor debe retornar un booleano o puedes usar una variable booleana que controle el salto y asignar esta variable a ese valor en el animator
Amigo tengo una duda
Puedo hacer referencia o controlar las acciones de un animator desde una script de un gameobjet diferente?
Si puedes hacerlo, debes referenciar al animator del objeto que deseas usar, puede ser tomando primero el objeto y después tomando su animator,
amigo tengo un problema, no consigo que mi personaje salte (incluso la animacion de caida funciona) pero no consigo que salte y no se como solucionarlo, rehice todo desde cero 2 veces y nada :/
Hola, puede ser por el nombre que tiene el botón que estás usando, recuerda que las mayúsculas y minúsculas son muy importantes, también puede ser por el objeto que detecta el suelo para poder funcionar, debes colocar los objetos que pertenecen al suelo en la capa correspondiente y luego asignarla en el script, estos pueden ser los problemas más frecuentes sobre esto
Estoy haciendo mi primer juego y estoy en etapa de dibujo, no sé si hacer animación clásica o esqueletal, que recomiendas para principiantes? Es para un juego Mobile plataformero
Hola, el principal aspecto a tener en cuenta sería el tiempo que le puedes dedicar a las ilustraciones, normalmente hacer animaciones por huesos es mucho mejor para ahorrar tiempo, ya que solo debes hacer el personaje y centrarte en la animación, mientras que la animación por cuadros puede tomar más tiempo, todo depende de como quieres tu resultado final y la intención de las animaciones
hola no se porque cuando salto mi personaje que da dentro de la pared revise el pivote pero esta en la cabeza del personaje .que puede ser ayuda gracias por los videos.
ojo que es cuando esta cerca de la pared.
no tambien es cuando estoy al lado de la pared y giro a la derecha o izquierda
@@cristiancarrazana3131 Hola, es posible que sea por la manera en la que tienes tu colisionador, en muchas ocasiones la imagen no está centrada, entonces para corregirlo muchas veces movemos el colisionador para un lado, si en algún momento cambia de posición o rotación puede generar estos problemas, intenta centrar las imágenes de tu personaje
@@BravePixelG quiero darte muchas gracias por tus videos que llevo como 2 años intentando aprender y que es difícil la programación en unity .por como tu dices, se puede hacer de diferentes maneras. Y todo lo que yo quería hacer estan en tus videos muchas gracias. Seguiré con mi proyecto. Gracia a ti.
HOLA CRACK DONDE DESCARGO EL SPRITE PARA CREAR LOS PERSONAJES
Hola, aquí te dejo el link del paquete, no me había dado cuenta de que no estaba en la descripción, también lo dejé ahí, muchas gracias:
assetstore.unity.com/packages/2d/characters/simple-2d-platformer-assets-pack-188518
tengo un problema esque el movimiento que yo uso es de la asset store y no se como puedo para que haga la animacion por favor
Hola, lo que puedes hacer es identificar cuáles son las variables más útiles para generar la animación y tomarlas como parámetro, por ejemplo, en el rigidbody puedes encontrar la velocidad en X y en Y, con la velocidad en X puedes saber si tu personaje se está moviendo de forma horizontal y con la velocidad en Y de manera vertical, también debería tener alguna variable que te diga si está saltando, saltó o se encuentra en el aire
@@BravePixelG gracias pero todavia no te entiendo muy bien (lo siento por preguntar tanto)
ESPERARE (LOSIENTO PERO EQUE NO TE ENTIEDO MUCHO) PUDIERAS HACER UN SHORT SOBRE ESO
@@TheIsma214 Hola, a lo que me refiero es que debes ver cuáles son las variables y valores que representan el movimiento de tu personaje, el más normal es la velocidad del rigidbody, entonces si tienes la variable en el script puedes tomar su valor con rb2D.velocity.x para el movimiento horizontal, y pasas este valor como un parámetro float en el animator, para poder enviarla debes crear el parámetro en el animator y usar en el código animator.setfloat como se ve en el video, para el salto y todo lo demás depende de tu código y como quieres usar los datos para que se reflejen en la animación
@@BravePixelG yo solo quiero la animacion cuando se mueva izquierda derecha
Hola amigo, tienes como hacer un enemigo? y poder dañarlo? y que nos dañe?
Claro, tenemos varios de enemigos según el tema, el mas completo es el del jefe:
ua-cam.com/video/PaT_43fmT_k/v-deo.html
En este tenemos varios de los elementos que preguntas y también tenemos daño cuerpo a cuerpo o por disparos, aquí te dejo uno de ellos:
ua-cam.com/video/m8GfeZ2zKEA/v-deo.html
¡Gracias por el video! es muy util. Uso esto para hacer mi animación, pero después de eso tengo que hacer capturas de pantalla de la animación y luego cortar manualmente los bordes porque los programas para borrar el fondo no funcionan del todo bien. ¿Es posible hacer una hoja de sprites directamente en unity de alguna manera? ¡gracias!
Hola, según lo que conozco no es posible, normalmente se usan otro tipo de software para poder editar fácilmente las imágenes y en Unity se usan, se pueden hacer un par de modificaciones en el Sprite Editor, pero son más a nivel funcional para nuestros juegos.
@@BravePixelG hola una pregunta se puede importar animaciones 2d en unity?
hey a mi no me deja seleccionar varios elementos a la ves como tu lo haces?
Para seleccionar un grupo de elementos debes seleccionar el primero, luego mientras presionas shift le das clic al último elemento y se seleccionan todos los que estén en medio
cual windows
Mi personaje no se queda en el ultimo cuadro, termina los primeros fotogramas y se acaba, tengo desactivado el loop
¿Tienes desactivada la opción de "puede hacer la transición a sí mismo"?
@@BravePixelG sip
Hola bro, oye no me deja crear más de una transición entre cada state, sabes a qué se debe?
No sé si es lo que preguntas, pero si haces más de una transición de un estado a otro, por ejemplo, dos de Idle a correr, se forma un conjunto de transiciones en el inspector donde puedes seleccionarlas de manera independiente y lograr esta transición de maneras distintas
clickea en el animator la animacion que quieras y en el inspector en los 3 puntitos, dejalo en modo debug y te deja marcar mas de una transicion.
@@BravePixelG hola bro una pregunta al poner el codigo de movimiento de personaje este gira tambien de izquierda a derecha pero al aplicar la animacion de correr este deja de girar a la izquierda y se desplaza mirando solo hacia la derecha alguna solucion?
Una duda si es que alguien me puede responder, estoy haciendo un juego tipo Beat em up y al desplazarlo hacia arriba y abajo sin tocar las teclas de movimiento Horizontal el personaje queda estático, no he podido lograr animar el movimiento de forma vertical, como podría arreglarlo?
Puedes agregar el parámetro de movimiento vertical, entonces puedes colocarlo en el código como la velocidad que tiene tu personaje o si la tecla se está presionando, de la misma manera que de manera horizontal, entonces agregas este parámetro a una transición extra para poder hacer la animación
@@BravePixelG Logrado jaja, muchas gracias x tu respuesta!
Donde puedo ver el codigo
Como seleccionas varias imagenes a la vez?
Puedes seleccionar una y luego mientras presionas "Control" le das clic a las demás, o si quieres todas las de un espacio, seleccionas una y luego presionas "Shift" hasta donde quieres tomarlas
@@BravePixelG Gracias siempre tuve esa duda, no soy tan bueno en el menu de unity por eso estoy aqui XD
@@BravePixelG muchas gracias yo también tenia el mismo problema
Día 2: ayer no contó porque tuve migraña
Este día a sido algo frustrante, todo iba bien hasta que metí con el puñetero código para que al compilarlo en unity marcara 726 errores, al parecer nada de lo que había escrito se encontraba en el script o algo así entendí, investigué por otras fuentes como resolver el problema, algunos decían que tenía que vincular el script, otros que el script estaba duplicado y otros que la carpeta del archivo estaba mal escrito... Menudo lío
Ahora me he quedado con solo dos errores (que estoy seguro de que si arreglo me mandará los 700+ errores de antes) algo sobre que el Animator se está intentando ejecutar pero el script no lo encuentra y otro que dice que el controladorSuelo no ha sido declarado...
Creo que lo mejor será eliminar todo el avance de hoy y empezar mañana de nuevo
pero como consigo ese muñequito ?
Hola como estás? No sé si llegues a ver mi comentario, pero hasta al momento todo bien, pero cuando salto y el personaje empieza la animación de caer, se revuelve la animacion de caer y correr y se ve como bugueado jaja sabes como puedo evitar esto?
Hola, posiblemente tienes un problema en alguna transición, si la dejas sin ninguna condición o los parámetros coinciden para que se ejecute ambas animaciones puede ocurrir este error, entonces debes revisar si el problema está en el animator o en los parámetros que estás usando desde el código
@@BravePixelG Holaaaa si el problema era ese, de la caida le deje false la transicion para correr y por eso lo hacía, gracias. :D
tengo un problema mi personaje se mueve pero se mueva para la izquierda al iniciar si apreto la d se va para la derecha pero por que se mueve a la izquierda solo te dejo mi codigo:
{
private Rigidbody2D rb2D;
private float movimientoHorizontal = 0f;
private Vector3 velocidad = Vector3.zero;
private bool mirandoDerecha = true;
private bool salto = false;
private Animator animator;
public bool enSuelo;
[SerializeField] private float VelocidadDeMovimiento;
[SerializeField] private float suavizandoDeMovimiento;
[SerializeField] private float fuerzaDeSalto;
[SerializeField] private LayerMask queEsSuelo;
[SerializeField] private Transform controladorSuelo;
[SerializeField] private Vector3 dimensionesCaja;
// Start is called before the first frame update
private void Start()
{
rb2D = GetComponent();
animator = GetComponent();
}
// Update is called once per frame
private void Update()
{
movimientoHorizontal = Input.GetAxisRaw("Horizontal") * VelocidadDeMovimiento;
animator.SetFloat("Horizontal", Mathf.Abs(movimientoHorizontal));
if (Input.GetButtonDown("Jump"))
{
salto = true;
}
}
private void FixedUpdate()
{
enSuelo = Physics2D. OverlapBox (controladorSuelo.position, dimensionesCaja, 0.2f, queEsSuelo);
animator.SetBool("enSuelo", enSuelo);
Mover(movimientoHorizontal * Time.fixedDeltaTime, salto);
salto = false;
}
private void Mover(float mover,bool saltar )
{
Vector3 velocidadObjetivo = new Vector2(mover, rb2D.velocity.y);
rb2D.velocity = Vector3.SmoothDamp(rb2D.velocity, velocidadObjetivo, ref velocidad, suavizandoDeMovimiento);
if (mover > 0 && !mirandoDerecha)
{
Girar();
}
else if (mover < 0 && mirandoDerecha)
{
Girar();
}
if (enSuelo && salto)
{
enSuelo = false;
rb2D.AddForce(new Vector2(0f,fuerzaDeSalto));
}
}
private void Girar()
{
mirandoDerecha = !mirandoDerecha;
Vector3 escala = transform.localScale;
escala.x *= -1;
transform.localScale = escala;
}
private void OnDrawGizmos()
{
Gizmos.color = Color.yellow;
Gizmos.DrawWireCube(controladorSuelo.position, dimensionesCaja);
}
}
Hola, cuando dices que se mueve es ¿la animación o el personaje? Porque si es la animación puede ser un problema de la configuración del animator, el código parece que está bien, puedes revisar cuáles son las condiciones para que cambie de estado o cuál es la animación inicial
@@BravePixelGEl Personaje
@@CODIGO_GAMER695 Si se mueve solo el personaje puede ser por la superficie, si no es un problema de los controles puedes ver si la superficie en la que está genera algún tipo de fricción o algún elemento que interfiera con el personaje, porque el código parece que está bien
no c no pasa nada sigue igual
6:25 (script)
Parte 2?
que onda man
oye me tira el error supongo que no reconose el salto o algo asi pues cuando cae el personaje se queda en
(enSuelo) activado
te dejo mi codigo
{
private Rigidbody2D rb2D;
private float movimientoHorizontal = 0f;
private Vector3 velocidad = Vector3.zero;
private bool mirandoDerecha = true;
private bool salto = false;
private Animator animator;
public bool enSuelo;
[SerializeField] private float VelocidadDeMovimiento;
[SerializeField] private float suavizandoDeMovimiento;
[SerializeField] private float fuerzaDeSalto;
[SerializeField] private LayerMask queEsSuelo;
[SerializeField] private Transform controladorSuelo;
[SerializeField] private Vector3 dimensionesCaja;
// Start is called before the first frame update
private void Start()
{
rb2D = GetComponent();
animator = GetComponent();
}
// Update is called once per frame
private void Update()
{
movimientoHorizontal = Input.GetAxisRaw("Horizontal") * VelocidadDeMovimiento;
animator.SetFloat("Horizontal", Mathf.Abs(movimientoHorizontal));
if (Input.GetButtonDown("Jump"))
{
salto = true;
}
}
private void FixedUpdate()
{
enSuelo = Physics2D. OverlapBox (controladorSuelo.position, dimensionesCaja, 0.2f, queEsSuelo);
animator.SetBool("enSuelo", enSuelo);
Mover(movimientoHorizontal * Time.fixedDeltaTime, salto);
salto = false;
}
private void Mover(float mover,bool saltar )
{
Vector3 velocidadObjetivo = new Vector2(mover, rb2D.velocity.y);
rb2D.velocity = Vector3.SmoothDamp(rb2D.velocity, velocidadObjetivo, ref velocidad, suavizandoDeMovimiento);
if (mover > 0 && !mirandoDerecha)
{
Girar();
}
else if (mover < 0 && mirandoDerecha)
{
Girar();
}
if (enSuelo && salto)
{
enSuelo = false;
rb2D.AddForce(new Vector2(0f,fuerzaDeSalto));
}
}
private void Girar()
{
mirandoDerecha = !mirandoDerecha;
Vector3 escala = transform.localScale;
escala.x *= -1;
transform.localScale = escala;
}
private void OnDrawGizmos()
{
Gizmos.color = Color.yellow;
Gizmos.DrawWireCube(controladorSuelo.position, dimensionesCaja);
}
}
man se que es un tutorial pero si puedes colocar los codigos en la descripcion se te agradeceria mucho
😁
El código está bien, al parecer el error es cuando pasas a Unity e intentas dibujar la caja que funciona para detectar el suelo, solo debes seguir el procedimiento del video para que se dibuje bien la caja y que puedas tener a tu personaje moviéndose, porque probé lo que enviaste y funciona con normalidad.
@@BravePixelG a bueno verifico eso entonses
gracias
@@moisesemmanuelajonsosa2455 wey oe si es verdad baje un poco la caja y esta bien
Nomas jala con tu codigo?
No, las variables y animaciones deben tener el comportamiento que necesites en tu código, que la animación sea un reflejo de lo que está ocurriendo con tu personaje
me da cs1001
Hola, este error se presenta cuando te hace falta una parte del código que funciona como identificador, puede ser que te haga falta un paréntesis, una llave o un punto y coma, en el error te dice que es lo que te hace falta, puedes dar doble clic y te llevará a la línea que genera el error
Cuando añado la animacion el sprite parpadea, por que?