CURSO de Unity y C# para principiantes (Febrero 2025): www.udemy.com/course/unity-y-c-fundamental-desarrollo-de-videojuegos-2d/?couponCode=INDIERAMA2025B Si REALMENTE querés apoyar al canal, asegurate de comprar con el link, sino Udemy se queda con la mayor parte de la venta.
Excelente contenido amigo, ayer buscando llegué a este canal y realmente me encanta la forma en cómo enseñas y cómo vas narrando los sucesos para llegar al producto final!! Sigue así eres un Crack
Para aquellos que no les aparezca el espacio para setear Samples: ir a la configuración de la linea de tiempo de la animación (icono de 3 puntos verticales) y darle a Show sample rate.
El canal lo empecé hace poco, igualmente conseguir los primeros subs se hace bastante difícil. Espero conseguir más pronto. Aprecio muchísimo tu apoyo, muchas gracias!
A mi me falto el uso de varios idle para dejar el personaje en la ultima posicion, es decir, si caminase hacia arriba, que se acabara quedando mirando hacia arriba con un idle etc, por el resto muy buenos videos, me estan ayudando a aprender sobre unity :)
@@abrahambarper117 si, no me acuerdo bien pero en el idle, en vez de ser solo uno, lo cree como mapa de idle, y cada idle era 0-idleAbajo, 1-idleArriba, entonces por cada frame se lee una función que determina cual es la variable, y el valor se cambia según cual sea el input, es decir, si pulso S para ir hacia abajo el calor de esa función que cambia el idle se vuelve 0, y el valor mismo es el que mando a los idle para que cuando esté quieto se ejecute solo el movimiento del idle asignado, repito, no me acuerdo bien, pero si me acuerdo mañana te vuelvo a responder con el código delante
Tengo un problema con el principio del tutorial hice todo el código hasta el min 6:41 pero no se pq me sale este error: error CS1061: 'Rigidbody2D' does not contain a definition for 'movePosition' and no accessible extension method 'movePosition' accepting a first argument of type 'Rigidbody2D' could be found (are you missing a using directive or an assembly reference?) EDIT: Por si afecta en algo la versión de unity es la 2021.3.11f1
Como se hace para que el personaje cuando se mueve por ejemplo a la derecha y dejes de presionar esa tecla, se quede viendo a la derecha y no vuelva a la animacion Idle?
por favor enseñanos como crear un joystic para jugar este tipo de juegos en el celular o en la pc, hay uno en el asset store de unity pero al chocar se mueve mucho el personaje, nose como integraelo con estas animaciones.
Y si quisiera cambiar entre las dos perspectivas , harías tutorial , es que quiero que en una parte sea la perspectiva normal y cuando llegue a cierta zona perspectiva Town Down
Excelente vídeo mano, creo que ya te lo dije antes en otro comentario, pero creo que eres lo que la comunidad hispana de Unity necesitaba, un canal de tutoriales básicos que enseñe buenas practicas y no mal acostumbre a sus espectadores a cometer errores, literalmente llevaba toda mi vida cometiendo malas practicas al momento de escribir código en Unity hasta que conocí tu canal. Y por cierto, tengo dos dudas, la primera es: Recuerdo haber leído que usar la variable "Velocity" del Rigidbody en 3d era una practica poco recomendada, ¿ esto es verdad ? y si es así, ¿ se aplica lo mismo en el 2d ? Y la segunda: ¿ Cómo se podría hacer que el personaje tuviera una aceleración inicial ?, algo similar a los juegos de plataformas.
Muchas gracias Arturo por tus comentarios, siempre es muy motivador para seguir haciendo videos. Respecto a la velocidad del Rigidbody, si ves en la documentación de Unity: docs.unity3d.com/ScriptReference/Rigidbody-velocity.html Hay una parte donde dice que no debería modificarse directamente (osea, asignarle un vector directamente) porque podría llevar a comportamientos extraños. PERO... he visto muchos instructores certificados de Unity que lo hacen en un cierto frame (por ejemplo al apretar un boton) y no lo veo tan mal. Lo que sí veo mal es modificar la velocidad en cada ciclo de FixedUpdate como hace mucha gente en muchísimos tutoriales. Respecto a aplicar una aceleración en un plataformas, en código va a variar dependiendo si estas trabajando con un kinematic, con un Rigidbody dynamic, modificando directamente el Transform, etc. De todas formas las bases son las mismas: hay un periodo de aceleración, otro donde la velocidad llega y se mantiene al máximo y otro de desaceleracion. Según esto vas a tener distintos comportamientos. Un juego como Megaman tiene períodos de aceleración y desaceleracion muy cortos(casi instantaneos) dando la sensación de movimientos más "roboticos" y que responden instantáneamente. En un juego como super meat boy la aceleración es mucho más larga, dando una sensación de mayor pesadez. En definitiva, manejando la aceleración, desaceleracion y velocidad máxima a tu gusto vas a poder encontrar el comportamiento que más se adecue a tu juego. Ahora mismo y por varios días no voy a estar con mi computadora a mano, pero hace un tiempo hice una pequeña implementación. Podría mostrarte como es el código (o podría hacer un video al respecto, esta muy interesante).
@@Indierama Muchas gracias por aclararme las dudas, sinceramente tenia esas preguntas rondado por mi cabeza desde hace tiempo, y siempre es un placer comentar y apoyar tu canal, es lo mínimo que puedo hacer para recompensar ese esfuerzo que empleas en él.
Hola buenas, muy buen video, solo tengo un pequeño problemita A la hora de importar mi personaje y al hacer el proceso de separar los sprite, se cambian los colores de mi personaje, esta raro, se distorciona las texturas pero en la imagen que importe esta perfectamente, no se si podrias ayudarme gracias
A mi me pasaba una cosa similar antes, para arregarlo fuí sección de "Compression" ( que está debajo de "Advanced") y ahí cambie la opción "Normal Quality" por "None". Pruebalo a ver si te funciona.
Una duda esque en la posición de abajo e izquierda no se mueve cuando reproduzco la animación de sprites en el blend tree pero hacia arriba y derecha si se reproduce su animación correspondiente cuando muevo la bolita
Hola Rodion! muchas gracias! Supongo que pronto voy a abrir un Patreon, pero aun no he tenido tiempo de pensar y decidir que contenido extra puedo ofrecer (si es que así fuera a funcionar). Gracias por el apoyo y saludos! 🙌
Tenés que castear (convertir de tipo) el Vector 3 a Vector2 o viceversa. Por ejemplo, si querés convertir un Vector3 a Vector2 escribís (Vector2) al lado.
Hola, cómo se configura para que el personaje quede en un estado de reposo según la dirección en la que lo dejas de caminar, en su caso estado de reposo mirando a cualquiera de las 8 direcciones, (yo tengo animación para cada reposo) pero siempre al iniciar y al momento de "mover" el personaje siempre vuelve a la animación por default definida.
Hola indierama! Como podría hacer que el personaje vaya más rápido al darle a alguna tecla? Ejemplo: Al presionar shift el personaje va un poco más rápido. Gracias
Hola Jemy! Se puede hacer asi: Además de speed, definís otra velocidad mayor que speed (yo la llame extraSpeed, deberías setearla en un valor mayor que speed). También definis un booleano para saber si se está apretando shift (yo lo llame isRunning). Si apretas shift, isRunning se pone en verdadero. Después en FixedUpdate defino la velocidad según si isRunning es verdadera o falsa. Si es verdadera se asigna la "velocidad rápida" sino se asigna la lenta. Te dejo el script y espero que te ayude, saludos! using UnityEngine; public class Player : MonoBehaviour { [SerializeField] private float speed, extraSpeed; private Rigidbody2D playerRb; private Vector2 moveInput; private Animator playerAnimator; private bool isRunning; void Start() { playerRb = GetComponent(); playerAnimator = GetComponent(); } void Update() { float moveX = Input.GetAxisRaw("Horizontal"); float moveY = Input.GetAxisRaw("Vertical"); isRunning = Input.GetKey(KeyCode.LeftShift); moveInput = new Vector2(moveX, moveY).normalized; playerAnimator.SetFloat("Horizontal", moveX); playerAnimator.SetFloat("Vertical", moveY); playerAnimator.SetFloat("Speed", moveInput.sqrMagnitude); } private void FixedUpdate() { float runSpeed; if (isRunning) { runSpeed = extraSpeed; } else { runSpeed = speed; } playerRb.MovePosition(playerRb.position + moveInput * runSpeed * Time.fixedDeltaTime); } }
Hola, segui al pie de la letra cada paso, pero al ejecutar el personaje solo genera animacion hacia la derecha, ya sea bajano a la derecha, subiendo a la derecha o derecha, pero cuando muevo hacia arriba, abajo, izquierda (arriba,abajo) se mueve pero sin animacion... Alguien puede ayudarme? ya e borrado los archivos y vuelto a hacer pero nada, en la parte de animacion se ve el movimiento perfecto, pero pareciere que esta bloqueado solo para que se vea a la derecha
Muy buen video, me sirvio mucho, pero al mover mi personaje a la derecha o izquierda el sprite no detecta bien y se me bugea todo moviéndose con la animacion de derecha o izquierda y me vuelve a el sprite inicial, no se si me entendes o saber solucionarlo
Antes de todo gracias el video esta bien explicado pero algo no me quedo del todo claro . SI utiliso el Input.GetAxisRaw ( "Horizontal" ) pero solo quiero que use las flechas direcionales y no wasd hay forma de que solo acepte las teclas direcionales ?
Hola! Edit -> Project settings -> Input Manager -> Expandi los ejes (axis) -> Busca el eje Horizontal y borra las entradas alternativas (Alt Negative Button y Alt Positive Button). Repetí para el eje Vertical. Saludos!
oye muy buen tuto pero lo hice todo al pie de la letra y cuando le doy a play simplemente no coge el wasd, me ayudas? llevo 2 horas intentandolo y es que he repetido el procedimiento desde 0 tres veces y no funciona :( edit: cuando le doy a play me manda un mensaje en la part inferior de la pantalla: ArgumentException: Input Axis horizontal is not setup. Gracias re'edit: ya lo logre, para los que le paso lo mismo que a mi (aunque no creo porque ustedes son mejores que yo) solo tienen que poner la "h" de "horizontal" en mayuscula asi: "H" jajajajja bueno los quiero y beban agüita chao :)
Cual es el codigo para que en vez de hacer una animacion de abajo o arriba, se mueva directamente hacia la direccion donde mira el personaje, tipo juegos Beat em up.
Muchas gracias! como estoy actualizando la posición en FixedUpdate, lo estoy haciendo en sincronía con el motor de físicas, el cual se actualiza cada fixedDeltaTime y no cada deltaTime. Este fixedDeltaTime es seteable desde el editor de Unity, por lo que para mantener un movimiento independiente del seteo de este valor, tengo que multiplicar por él. La idea es algo similar a cuando se multiplica por deltaTime para mantener un movimiento independiente del framerate.
@Indierama me encantan tus videos, tengo una duda, pero creo que va más allá del código. Siempre veo que a las variables de velocidad le ponen valores bajos, 3, o 4. Pero, cuando yo lo asigno ese valor a la variable, el pj siempre se mueve extremadamente lento, al menos que le dé 100 o más de valor.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMovement : MonoBehaviour { private float speed = 3f; private Rigidbody2D playerRb; private Vector2 moveInput;
Indierama te dejo como sugerencia hacer un movimiento 2d con buenas practicas(Para juegos de plataformas), porque he visto varios tutoriales que modifican la velocidad, lo cual es una mala practica y da problemas, por cierto tu que opinas, es mejor mover por físicas o crearse un propio character controller?
Buenaaas, al poner todo el codigo me salta con el error: Assets\Scripts\MovientoJugador.cs(6,11): error CS0246: The type or namespace name 'RigidBody2D' could not be found (are you missing a using directive or an assembly reference?) ayuda por favor!
cuando termine el codigo me aparecio este error:Assets\scripts\playercontroller.cs(13,13): error CS0246: The type or namespace name 'RigidBody2D' could not be found (are you missing a using directive or an assembly reference?) alguien sabe como solucionarlo?
holaaa, me encanta tus videos y estoy suscrito a tu canal, y me ha servido mucho, me gustaria saber como hago un sistema de combos de ataques en varias direcciones ya que para la izquierda tengo un conjunto de ataques para la derecha igual y así para cada dirección pero en cada dirección necesito crear un combo cuando estoy en la derecha y presiono un botón o una tecla que tenga una serie de movimientos y así mismo para cada dirección. estoy buscando videos que me den una idea pero no logro conseguirlos. me gustaría saber si me pueden ayudar. o un video que lo explique para adaptarlo. es decir un sistema de combos en en 8 direcciones.
Hola Camilo, toca en la jerarquia a la cámara (Main Camera), a la derecha en el inspector busca donde dice Background y clickea en el color azul que hay al lado, te va a saltar un color picker para elegir el color que vos quieras.
Hola, una consulta, ¿has usado el nuevo input system? De ser así, ¿Cómo podría añadir animaciones de arriba y abajo? Lo que pasa que si bien el nuevo sistema facilita muchas cosas, cambia la forma de escribir el código. Muchas gracias.
Hermano!! Buenisimo el video me recontra sirvió. Pero me salta un error y no encuentro donde esta la falla, me dice: MissingComponentException: There is no 'Animator' attached to the "player" game objet but is a script trying to acces it. Me ayudas?
Hola Javier! Muchas gracias! Por alguna razón no tenés el componente Animator en tu jugador. Cuándo le diste a Create en la ventana de animación ¿Tenías el jugador seleccionado?. Cuando creas el clip de animación con un objeto seleccionado, automáticamente te debería aparecer el componente Animator en el.
En el caso del video al terminar el movimiento queda el personaje en idle mirando hacia abajo, pero cómo se podría hacer para que quede mirando en la última dirección que apuntó?? Habría que crear un blend tree para el idle también (idle left, idle right, etc)???, si es así, cómo podría decirle que se quede en esa animación?? Gracias por el tutorial! :D
Para hacer este movimiento me basé en varios juegos que lo implementan de esa forma. Pero puede hacerse tal como decís, una animación de un sprite apuntando en cada una de las direcciones y un segundo blend tree. Una forma de hacer que se quede en la posición seria inhibiendo el seteo a cero de los parámetros horizontal y vertical por código.
Estoy buscando como hacer saltos en las 8 direcciones en esta perspectiva top-down, si tienes o alguien tiene información respecto a esto seria de mucha utilidad para mi y estaría agradecido.
Hola! quizas lo que estás buscando no es perspectiva top-down (2D), sino isométrica (3D). Tene en cuenta que ya estás ocupando las dos dimensiones para el movimiento sobre el plano XY, por lo que te faltaria una dimension para lograr un salto. Una perspectiva isométrica es 3D, por lo que te puede permitir hacer el salto. Lo único que podrías llegar a hacer con top down es alguna especie de animación emulando un salto. Saludos!
Buenas tengo un error Cuando carga todo el código a Unity me dice Asseta\PlayerMovemen.cs(7,45): error CS1003:Syntax error, ',' expected Cómo puedo solucionarlo
Al parecer, te falta una coma en algún lado. Fijate de escribir todo exactamente como lo hago yo (presta atención principalmente a las comas). Y si no podés resolverlo copia el código aca.
Necesito Ayuda, Hice Todo "Al Pie De La Letra" y Al final Cuando Quise Caminar a las 4 Direcciones Funciono Menos a La Derecha, Si Camino Hacia a La Derecha Tiene Una Animación De Caminar a La Izquierda y En Console Sale "Parameter 'Horizontal' does not exist. UnityEngine.Animator:SetFloat (string,single)
CURSO de Unity y C# para principiantes (Febrero 2025):
www.udemy.com/course/unity-y-c-fundamental-desarrollo-de-videojuegos-2d/?couponCode=INDIERAMA2025B
Si REALMENTE querés apoyar al canal, asegurate de comprar con el link, sino Udemy se queda con la mayor parte de la venta.
MUCHAS GRACIAS, FUISTE EL ÚNICO TUTORIAL QUE PUDE SEGUIR BIEN AAAAAAA
Excelente contenido amigo, ayer buscando llegué a este canal y realmente me encanta la forma en cómo enseñas y cómo vas narrando los sucesos para llegar al producto final!! Sigue así eres un Crack
Muchas gracias por tu comentario Jose! Me ayuda mucho para seguir en este mismo rumbo para los próximos videos. Saludos!
Para aquellos que no les aparezca el espacio para setear Samples: ir a la configuración de la linea de tiempo de la animación (icono de 3 puntos verticales) y darle a Show sample rate.
Gracias por decirlo en los comentarios de verdad gracias
Tremendo video y muy bien explicado, sería genial una parte dos incluyendo los idles en diferentes direcciones
Muy buen tutorial explicando claramente como funciona el blend tree y lo útil que puede ser para este tipo de movimientos
gracias, por fin puedo crear diseño de mapa para seleccionar niveles, me has salvado
Como demonios no tienes más subs? Tus vídeos me han servido de utilidad, intentaré ser un sub re activo mano
El canal lo empecé hace poco, igualmente conseguir los primeros subs se hace bastante difícil. Espero conseguir más pronto. Aprecio muchísimo tu apoyo, muchas gracias!
Muy útil el video, estoy empezando con unity y no conocía el blend tree jejeje
Muy buen video, justo necesitaba esto para un proyecto, mil gracias por existir.
Me alegro que te haya servido 💪💪
Muchas GRACIAS!!
Todos tus videos de programación me han servido Eres un CRACK!
Simplemente genial. Una explicación sencilla clara, muchas gracias.
Muchas gracias por el apoyo!
me maté haciendolo y lo logré terminar, indierama sos un capo tkm
Jajaja yo también tkm, muchas gracias! Lleva laburo hacerlo!
Despues de 1 año sigue siendo la mejor explicacion que he visto. Gracias rey
Gracias a vos! 🙌✨
Amigo, explicas re bien, nuevo sub y me ayudaste a entender varias cosas que ni aca sabia
Muchas gracias Gaston! 🙌🙌
Espectacular video, que magnifica explicacion man, muy bien, gracias.
Muchísimas gracias! 💪💪
Buenísimo el video!!! Muchas gracias!! Felicitaciones y Éxitos
Muchísimas gracias 🙌🙌
gracias bro, eres de los mejores que he encontrado, me sirvió mucho 🎉
😎😎✨
A mi me falto el uso de varios idle para dejar el personaje en la ultima posicion, es decir, si caminase hacia arriba, que se acabara quedando mirando hacia arriba con un idle etc, por el resto muy buenos videos, me estan ayudando a aprender sobre unity :)
Oye me puedes decir como hiciste eso, yo lo e intentado y no e podido
lo lgraste hacer?
Necesito ayuda
@@abrahambarper117 si, no me acuerdo bien pero en el idle, en vez de ser solo uno, lo cree como mapa de idle, y cada idle era 0-idleAbajo, 1-idleArriba, entonces por cada frame se lee una función que determina cual es la variable, y el valor se cambia según cual sea el input, es decir, si pulso S para ir hacia abajo el calor de esa función que cambia el idle se vuelve 0, y el valor mismo es el que mando a los idle para que cuando esté quieto se ejecute solo el movimiento del idle asignado, repito, no me acuerdo bien, pero si me acuerdo mañana te vuelvo a responder con el código delante
@@zino2432 soy muy principiante y no entiendo :( @indierama ayuda
Grande bro sigue asi puede parecer algo simple y pequeño pero una gran ayuda para un gran comienzo
10/10 el truco de la speed para las transiciones de estados
qque bieny claro explicas loco! Esperando ese cursete que me nombraste!!! :D
Graciasss! 💪💪
El tutorial es muy bueno y me sirvió, que lastima que casi nadie conosca estos tutoriales
es sarcasmo?
Cómo podría hacer que cuando deje de caminar hacia arriba se quede mirando en esa dirección y no se volteé automáticamente?
.. . chale no me aparese eso 2:51 no me deja poner eso ni muchasa otras cosas
para que aparesca eso tengo que tenerlos guardados o algo asi?
Muchas gracias, muy bien explicado el video, tequieromucho
😊😊
Justo lo que necesitaba, mil gracias
😎😎🙌🙌
Gracias hombre me ayudan mucho estos videos 👍
😁😁
Tengo un problema con el principio del tutorial hice todo el código hasta el min 6:41 pero no se pq me sale este error: error CS1061: 'Rigidbody2D' does not contain a definition for 'movePosition' and no accessible extension method 'movePosition' accepting a first argument of type 'Rigidbody2D' could be found (are you missing a using directive or an assembly reference?) EDIT: Por si afecta en algo la versión de unity es la 2021.3.11f1
Hola, atento a las mayúsculas. Es MovePosition con M mayúscula. C# diferencia entre mayúsculas y minúsculas.
@@Indierama Gracias! No me había dado cuenta ^^"
Excelente video, muchas gracias amigo!!
Muchas gracias Ed! 🙌🙌
Hola border una pregunta, a mi no me aparece el apartado de "samples" en la ventana de animation, como le hago? :c
Increíble Tutorial :D, muchas gracias
Muchísimas gracias Salomón! 🙌🙌
nivel jesucristo literal codigo super limpio y movimiento extremadamente facil y limpio
Muchísimas gracias Roswuel! me alegro que te haya gustado! 🙌🙌
Buen video maestro, saludos crack!!!
Muchas gracias! 😁🙌🙌🙌
hola ami no me deja modificar el scrip en unity lo tengo que acer por otra app aparte y se me dificulta alguna idea de por que pasa?
Como se hace para que el personaje cuando se mueve por ejemplo a la derecha y dejes de presionar esa tecla, se quede viendo a la derecha y no vuelva a la animacion Idle?
Esto es lo que buscoo
@@luislaurente8186 Tenes que eliminar la flechita de Walk a idle me parece
por favor enseñanos como crear un joystic para jugar este tipo de juegos en el celular o en la pc, hay uno en el asset store de unity pero al chocar se mueve mucho el personaje, nose como integraelo con estas animaciones.
Y si quisiera cambiar entre las dos perspectivas , harías tutorial , es que quiero que en una parte sea la perspectiva normal y cuando llegue a cierta zona perspectiva Town Down
Excelente tutorial! Me suscribi :) sigue subiendo este tipo de videos n-n/
😁😁✨✨
lo logre grasias ahora puedo progamar izquierda o derecha y arriba o abajo
hola, tengo un problema con tu tutorial, y es que las animaciones no se reproducen cuando le doy a play
@Indierama Perdón tengo otra pregunta, por que motivo me sale que SetFloat me sale como error
grande broder buena guiaaa , como pondemos poner un vidujo creado para el ecenario como lo ponemos
Excelente vídeo mano, creo que ya te lo dije antes en otro comentario, pero creo que eres lo que la comunidad hispana de Unity necesitaba, un canal de tutoriales básicos que enseñe buenas practicas y no mal acostumbre a sus espectadores a cometer errores, literalmente llevaba toda mi vida cometiendo malas practicas al momento de escribir código en Unity hasta que conocí tu canal.
Y por cierto, tengo dos dudas, la primera es: Recuerdo haber leído que usar la variable "Velocity" del Rigidbody en 3d era una practica poco recomendada, ¿ esto es verdad ? y si es así, ¿ se aplica lo mismo en el 2d ?
Y la segunda: ¿ Cómo se podría hacer que el personaje tuviera una aceleración inicial ?, algo similar a los juegos de plataformas.
Muchas gracias Arturo por tus comentarios, siempre es muy motivador para seguir haciendo videos.
Respecto a la velocidad del Rigidbody, si ves en la documentación de Unity:
docs.unity3d.com/ScriptReference/Rigidbody-velocity.html
Hay una parte donde dice que no debería modificarse directamente (osea, asignarle un vector directamente) porque podría llevar a comportamientos extraños. PERO... he visto muchos instructores certificados de Unity que lo hacen en un cierto frame (por ejemplo al apretar un boton) y no lo veo tan mal. Lo que sí veo mal es modificar la velocidad en cada ciclo de FixedUpdate como hace mucha gente en muchísimos tutoriales.
Respecto a aplicar una aceleración en un plataformas, en código va a variar dependiendo si estas trabajando con un kinematic, con un Rigidbody dynamic, modificando directamente el Transform, etc. De todas formas las bases son las mismas: hay un periodo de aceleración, otro donde la velocidad llega y se mantiene al máximo y otro de desaceleracion. Según esto vas a tener distintos comportamientos. Un juego como Megaman tiene períodos de aceleración y desaceleracion muy cortos(casi instantaneos) dando la sensación de movimientos más "roboticos" y que responden instantáneamente. En un juego como super meat boy la aceleración es mucho más larga, dando una sensación de mayor pesadez. En definitiva, manejando la aceleración, desaceleracion y velocidad máxima a tu gusto vas a poder encontrar el comportamiento que más se adecue a tu juego. Ahora mismo y por varios días no voy a estar con mi computadora a mano, pero hace un tiempo hice una pequeña implementación. Podría mostrarte como es el código (o podría hacer un video al respecto, esta muy interesante).
@@Indierama Muchas gracias por aclararme las dudas, sinceramente tenia esas preguntas rondado por mi cabeza desde hace tiempo, y siempre es un placer comentar y apoyar tu canal, es lo mínimo que puedo hacer para recompensar ese esfuerzo que empleas en él.
hola una pregunta yo hice todos los codigos pero a la hora de moverme no se mueve y no salta ningun error
Hola Simon! Chequea en el inspector si el campo speed no está en 0.
en el animator en la parte de parametros no me deja crear ¿sabes por que?
Hola buenas, muy buen video, solo tengo un pequeño problemita
A la hora de importar mi personaje y al hacer el proceso de separar los sprite, se cambian los colores de mi personaje, esta raro, se distorciona las texturas pero en la imagen que importe esta perfectamente, no se si podrias ayudarme
gracias
A mi me pasaba una cosa similar antes, para arregarlo fuí sección de "Compression" ( que está debajo de "Advanced") y ahí cambie la opción "Normal Quality" por "None".
Pruebalo a ver si te funciona.
Una duda esque en la posición de abajo e izquierda no se mueve cuando reproduzco la animación de sprites en el blend tree pero hacia arriba y derecha si se reproduce su animación correspondiente cuando muevo la bolita
Un vídeo muy bien explicado
Nuevo sub 👌
Muchas gracias! 💪
Solo se me activa la transición de la derecha, por qué puede ser?
me pasa lo mismo, encontraste solucion?
@Dragun2Aengell volví a hacer ese proceso bro. Tipo borrón y cuenta nueva. Puse el código en CHATGPT y puse el problema y me ayudó
me encantaria que enseñes a hacer disparos estilo the binding of isaac.
Deberías abrir un patreon o parecido, me gustaría poder apoyarte de alguna manera, muy buenos tutoriales, sigue así
Hola Rodion! muchas gracias! Supongo que pronto voy a abrir un Patreon, pero aun no he tenido tiempo de pensar y decidir que contenido extra puedo ofrecer (si es que así fuera a funcionar). Gracias por el apoyo y saludos! 🙌
Muchas, gracias me ha servido.
💪💪
Hola amigo tengo un problema, me dice q el operador "+' es ambiguo para verctor2 y verctor3, hay algo que pueda hacer?
Tenés que castear (convertir de tipo) el Vector 3 a Vector2 o viceversa. Por ejemplo, si querés convertir un Vector3 a Vector2 escribís (Vector2) al lado.
No me deja programar, las palabras y cosas que deben aparecer en colores no se ponen, saben que es? O como arreglarlo?
Hola! Edit -> Preferences -> External tools. Elegí visual studio como editor
@@Indierama muchas gracias lo descubrí después en un Tutorial pero se agradece la respuesta así que me suscribo
Hola, cómo se configura para que el personaje quede en un estado de reposo según la dirección en la que lo dejas de caminar, en su caso estado de reposo mirando a cualquiera de las 8 direcciones, (yo tengo animación para cada reposo) pero siempre al iniciar y al momento de "mover" el personaje siempre vuelve a la animación por default definida.
supiste como hacerlo? es el mismo problema que tengo que yo, solo que en mi caso, tengo que poner en 2 direcciones, izquierda y derecha
@@donovantoledo9348 no, no he logrado eso... Tendré qur aprender bien todo el tema de animaciones ... Porque no sé cómo hacerlo
no me sale la opcion de automate thresholds
otra consulta , si creo una casa como hago q mi personaje entre a ella
Hola indierama! Como podría hacer que el personaje vaya más rápido al darle a alguna tecla? Ejemplo: Al presionar shift el personaje va un poco más rápido. Gracias
Hola Jemy! Se puede hacer asi:
Además de speed, definís otra velocidad mayor que speed (yo la llame extraSpeed, deberías setearla en un valor mayor que speed). También definis un booleano para saber si se está apretando shift (yo lo llame isRunning). Si apretas shift, isRunning se pone en verdadero. Después en FixedUpdate defino la velocidad según si isRunning es verdadera o falsa. Si es verdadera se asigna la "velocidad rápida" sino se asigna la lenta. Te dejo el script y espero que te ayude, saludos!
using UnityEngine;
public class Player : MonoBehaviour
{
[SerializeField] private float speed, extraSpeed;
private Rigidbody2D playerRb;
private Vector2 moveInput;
private Animator playerAnimator;
private bool isRunning;
void Start()
{
playerRb = GetComponent();
playerAnimator = GetComponent();
}
void Update()
{
float moveX = Input.GetAxisRaw("Horizontal");
float moveY = Input.GetAxisRaw("Vertical");
isRunning = Input.GetKey(KeyCode.LeftShift);
moveInput = new Vector2(moveX, moveY).normalized;
playerAnimator.SetFloat("Horizontal", moveX);
playerAnimator.SetFloat("Vertical", moveY);
playerAnimator.SetFloat("Speed", moveInput.sqrMagnitude);
}
private void FixedUpdate()
{
float runSpeed;
if (isRunning)
{
runSpeed = extraSpeed;
}
else
{
runSpeed = speed;
}
playerRb.MovePosition(playerRb.position + moveInput * runSpeed * Time.fixedDeltaTime);
}
}
@@Indierama Gracias Indierama, me has ayudado mucho en mi proyecto y me has hecho entender más del C# y Unity
excelente Bro
Muchas gracias! 🙌🙌
Y como hago que al final se quede quieto pero de la última dirección por ejemplo termino caminando hacia "down" y se quede quieto en down
Eliminas la flechita de Walk a Idle
Hola, segui al pie de la letra cada paso, pero al ejecutar el personaje solo genera animacion hacia la derecha, ya sea bajano a la derecha, subiendo a la derecha o derecha, pero cuando muevo hacia arriba, abajo, izquierda (arriba,abajo) se mueve pero sin animacion... Alguien puede ayudarme? ya e borrado los archivos y vuelto a hacer pero nada, en la parte de animacion se ve el movimiento perfecto, pero pareciere que esta bloqueado solo para que se vea a la derecha
En el menú del blend Tree debes poner en los parámetros Horizontal y luego Vertical, no entendí mucho tu comentario pero prueba eso.
Muy buen video, me sirvio mucho, pero al mover mi personaje a la derecha o izquierda el sprite no detecta bien y se me bugea todo moviéndose con la animacion de derecha o izquierda y me vuelve a el sprite inicial, no se si me entendes o saber solucionarlo
Antes de todo gracias el video esta bien explicado pero algo no me quedo del todo claro . SI utiliso el Input.GetAxisRaw ( "Horizontal" ) pero solo quiero que use las flechas direcionales y no wasd hay forma de que solo acepte las teclas direcionales ?
Hola! Edit -> Project settings -> Input Manager -> Expandi los ejes (axis) -> Busca el eje Horizontal y borra las entradas alternativas (Alt Negative Button y Alt Positive Button). Repetí para el eje Vertical. Saludos!
oye muy buen tuto pero lo hice todo al pie de la letra y cuando le doy a play simplemente no coge el wasd, me ayudas? llevo 2 horas intentandolo y es que he repetido el procedimiento desde 0 tres veces y no funciona :(
edit: cuando le doy a play me manda un mensaje en la part inferior de la pantalla:
ArgumentException: Input Axis horizontal is not setup.
Gracias
re'edit: ya lo logre, para los que le paso lo mismo que a mi (aunque no creo porque ustedes son mejores que yo) solo tienen que poner la "h" de "horizontal" en mayuscula asi: "H" jajajajja bueno los quiero y beban agüita chao :)
Hola, tene cuidado con las mayúsculas. El axis se llama Horizontal con mayúscula (no horizontal).
Cual es el codigo para que en vez de hacer una animacion de abajo o arriba, se mueva directamente hacia la direccion donde mira el personaje, tipo juegos Beat em up.
no me aparece el Sprite mode
amigo buenisimo el video, no lo termine de ver pero igual xd. Cuando pones lo de fix update a mi no me aparece nada, que hago... respondeme porfa :(
Muy bien explicado y muy útil!!! Me gustaría saber por que usaste fixeddeltatime y no deltatime?. Gracias por el video 😁
Muchas gracias! como estoy actualizando la posición en FixedUpdate, lo estoy haciendo en sincronía con el motor de físicas, el cual se actualiza cada fixedDeltaTime y no cada deltaTime. Este fixedDeltaTime es seteable desde el editor de Unity, por lo que para mantener un movimiento independiente del seteo de este valor, tengo que multiplicar por él. La idea es algo similar a cuando se multiplica por deltaTime para mantener un movimiento independiente del framerate.
@@Indierama Gracias!!
@Indierama me encantan tus videos, tengo una duda, pero creo que va más allá del código. Siempre veo que a las variables de velocidad le ponen valores bajos, 3, o 4. Pero, cuando yo lo asigno ese valor a la variable, el pj siempre se mueve extremadamente lento, al menos que le dé 100 o más de valor.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
private float speed = 3f;
private Rigidbody2D playerRb;
private Vector2 moveInput;
void Start()
{
playerRb = GetComponent();
}
void Update()
{
float moveX = Input.GetAxisRaw("Horizontal");
float moveY = Input.GetAxisRaw("Vertical");
moveInput = new Vector2(moveX, moveY).normalized;
}
private void FixedUpdate()
{
playerRb.MovePosition(playerRb.position + moveInput * speed * Time.fixedDeltaTime);
}
}
//denada
Indierama te dejo como sugerencia hacer un movimiento 2d con buenas practicas(Para juegos de plataformas), porque he visto varios tutoriales que modifican la velocidad, lo cual es una mala practica y da problemas, por cierto tu que opinas, es mejor mover por físicas o crearse un propio character controller?
Buenaaas, al poner todo el codigo me salta con el error: Assets\Scripts\MovientoJugador.cs(6,11): error CS0246: The type or namespace name 'RigidBody2D' could not be found (are you missing a using directive or an assembly reference?) ayuda por favor!
Hola, ojo con las mayúsculas, escribí Rigidbody2D con b. Saludos!
cuando termine el codigo me aparecio este error:Assets\scripts\playercontroller.cs(13,13): error CS0246: The type or namespace name 'RigidBody2D' could not be found (are you missing a using directive or an assembly reference?)
alguien sabe como solucionarlo?
Es Rigidbody2D, la b en minúscula. Eso debería solucionarlo.
@@Indierama ahora me aparecen 4 errores mas D:
Chequea bien todas las mayúsculas y minúsculas, te recomiendo también que uses el autocompletado. Saludos!
@@Indierama ok muchas gracias y tambien buen video
gracias
holaaa, me encanta tus videos y estoy suscrito a tu canal, y me ha servido mucho, me gustaria saber como hago un sistema de combos de ataques en varias direcciones ya que para la izquierda tengo un conjunto de ataques para la derecha igual y así para cada dirección pero en cada dirección necesito crear un combo cuando estoy en la derecha y presiono un botón o una tecla que tenga una serie de movimientos y así mismo para cada dirección. estoy buscando videos que me den una idea pero no logro conseguirlos. me gustaría saber si me pueden ayudar. o un video que lo explique para adaptarlo. es decir un sistema de combos en en 8 direcciones.
increible
Hola amigo una pregunta cómo haces para que el fondo quedé en verde
Hola Camilo, toca en la jerarquia a la cámara (Main Camera), a la derecha en el inspector busca donde dice Background y clickea en el color azul que hay al lado, te va a saltar un color picker para elegir el color que vos quieras.
Hola, una consulta, ¿has usado el nuevo input system? De ser así, ¿Cómo podría añadir animaciones de arriba y abajo? Lo que pasa que si bien el nuevo sistema facilita muchas cosas, cambia la forma de escribir el código. Muchas gracias.
No me deja moverme cuando lo inicio, alguien sabe pq?
Se me ocurre que quizás no hayas agregado el script al jugador o quizás te quedó la velocidad seteada en 0 en el inspector.
Ayuda las animaciones no dan
no me aparece samples
Hola! Si mal no recuerdo tenes que tocar la pequeña tuerca en la ventana de animación y buscar algo como Show sample rate.
@@Indierama muchas gracias yo también tenia ese problema 😎👍
Hermano!! Buenisimo el video me recontra sirvió. Pero me salta un error y no encuentro donde esta la falla, me dice: MissingComponentException: There is no 'Animator' attached to the "player" game objet but is a script trying to acces it.
Me ayudas?
Hola Javier! Muchas gracias! Por alguna razón no tenés el componente Animator en tu jugador. Cuándo le diste a Create en la ventana de animación ¿Tenías el jugador seleccionado?. Cuando creas el clip de animación con un objeto seleccionado, automáticamente te debería aparecer el componente Animator en el.
@@Indierama mm no me acuerdo.. voy a hacerlo de nuevo y fijarme bien eso.. sino, no hay forma de agregarlo ahora?
@@javierbertero6965 Si, también podes agregar el componente Animator a mano. Seleccionas al jugador, vas a Add Component y buscas Animator.
Saludos!
holaa como se seleccionan varios sprites
Hola Joaquín, manteniendo shift
En el caso del video al terminar el movimiento queda el personaje en idle mirando hacia abajo, pero cómo se podría hacer para que quede mirando en la última dirección que apuntó?? Habría que crear un blend tree para el idle también (idle left, idle right, etc)???, si es así, cómo podría decirle que se quede en esa animación?? Gracias por el tutorial! :D
Para hacer este movimiento me basé en varios juegos que lo implementan de esa forma. Pero puede hacerse tal como decís, una animación de un sprite apuntando en cada una de las direcciones y un segundo blend tree. Una forma de hacer que se quede en la posición seria inhibiendo el seteo a cero de los parámetros horizontal y vertical por código.
@@Indierama Gracias por la respuesta!
@@Indierama Ayuda, necesito explicación de cómo hacer eso :(
@@abrahambarper117 th-cam.com/video/fRpoE4FfJf8/w-d-xo.html
en ese video explican como hacer que el personaje quede en la ultima posicion
Y si no quiero que salga de la pantalla?
Ahí ya deberías implementar un sistema de cámaras que siga al jugador. Si buscás hay muchos tutoriales.
Y si es top down runner xd como le hago?
@@elmichifok1024 No importa el genero que hagas, haceme caso y buscate un tutorial de cinemachine, vas a ver que es muy fácil.
Estoy buscando como hacer saltos en las 8 direcciones en esta perspectiva top-down, si tienes o alguien tiene información respecto a esto seria de mucha utilidad para mi y estaría agradecido.
Hola! quizas lo que estás buscando no es perspectiva top-down (2D), sino isométrica (3D). Tene en cuenta que ya estás ocupando las dos dimensiones para el movimiento sobre el plano XY, por lo que te faltaria una dimension para lograr un salto. Una perspectiva isométrica es 3D, por lo que te puede permitir hacer el salto. Lo único que podrías llegar a hacer con top down es alguna especie de animación emulando un salto. Saludos!
necesito estar en un proyecto 3d o 2d?
Hola! Es un proyecto 2D.
@@Indierama muchas gracias pensaba que no responderías buen video
2D
te amo
me dice que speed no existe
no me funciona el codigo
Hola, para poder ayudarte necesito que des un poco mas detalle de lo que te pasa
No me aparece Samples
Hola! ahí vi que ya encontraste la solución más abajo. Saludos!
Buenas tengo un error
Cuando carga todo el código a Unity me dice
Asseta\PlayerMovemen.cs(7,45): error CS1003:Syntax error, ',' expected
Cómo puedo solucionarlo
Al parecer, te falta una coma en algún lado. Fijate de escribir todo exactamente como lo hago yo (presta atención principalmente a las comas). Y si no podés resolverlo copia el código aca.
no me salió bro 😮💨😪
no me funciono la animacion
muy bueno el video :D pero creo que mi personaje no se mueve :,d que hice mal
Hola! Chequea el campo speed en el inspector, quizás lo tenés seteado a cero.
Necesito Ayuda, Hice Todo "Al Pie De La Letra" y Al final Cuando Quise Caminar a las 4 Direcciones Funciono Menos a La Derecha, Si Camino Hacia a La Derecha Tiene Una Animación De Caminar a La Izquierda y En Console Sale "Parameter 'Horizontal' does not exist. UnityEngine.Animator:SetFloat (string,single)
encontraste solucion? a mi me deja moverme a todo los angulos, pero solo se ve la animacion de hacia la derecha...