Español (ES)
Usuario anónimo
Iniciar sesión | Regístrate gratis
Foro de Desarrollo de Videojuegos

Responder / Comentar
Foro Desarrollo de Videojuegos
Por Wind3139
Hace 3 años / Respuestas: 2 / Lecturas: 344

Script de movimiento

Hola alguien conoce un buen script de movimiento no cutre para unity, estuve intentado con rigibody2d pero cuando se mueve el personaje queda deslizando y no logre sacárselo por completo, lo estaba haciendo con Transform.translate pero quería saber si había una mejor forma. Muchas gracias.
AdrielOG1410
Expulsado
Hace 3 años1
A ver, el componente Rigidbody2D sirve para aplicar físicas en 2 dimensiones a un gameobject. Cuando usas Transform.translate, estás digamos cambiando la posición del jugador en cada frame, ignorando el sistema de físicas (a velocidades/frames muy altas tu jugador seguramente traspasará paredes e ignorará colisiones).

Si vas a la documentación del componente (Rigidbody2D) verás que dispone de métodos para mover un gameobject usando el sistema de físicas: [url]https://docs.unity3d.com/ScriptReference/Rigidbody2D.html[/url]

Si quieres mover al personaje con físicas realistas te recomiendo el método "Rigidbody2D.AddForce", eso sí, cuando trabajes con físicas debes hacerlo en el FixedUpdate, si no cuando cambie la tasa de frames, las físicas se comportaran de forma distinta. 

El método Rigidbody2D.MovePosition también sirve, y es más fácil de implementar, sin embargo si el rigidbody no está marcado como Kinematic, las físicas darán problemas. Y si marcas Kinematic, tendrás que reprogramar la gravedad y cualquier fuerza, es más complejo.
1 VOTO
Hagans1Hace 3 años2
Rigidbody.MovePosition es para mover cuerpos que no requieran de fisicas pero que apliquen fisicas a los objetos que colisionan contra ellos, por eso solo tiene sentido con los cuerpos kinematicos.
Usando addForce como han mencionado, controla en tu rigidbody el drag para que se frene mas o menos rapido o aplica un physic material 2d a tus objetos.

Otra opción es modificar el vector velocidad. Puedes modificar rigidbody.velocity en su eje x para cambiar la velocidad de tu personaje sin alterar el eje y que es el de la gravedad. Esto suele ser lo más comun por mi experiencia para juegos 2d tipo metroidvania o plataformas, siempre que uses el sistema de fisicas de unity y no corki engine o alguna implementación propia.
1 VOTO
Responder / Comentar
Subir
Foros > Desarrollo de Videojuegos > Script de movimiento

Hay 2 respuestas en Script de movimiento, del foro de Desarrollo de Videojuegos. Último comentario hace 3 años.

  • Regístrate

  • Información legal
Juegos© Foro 3DJuegos 2005-2024. . SOBRE FORO 3DJUEGOS | INFORMACIÓN LEGAL