Bien lo siguiente que vamos hacer Ahora es animar nuestro personaje para que al moverse parezca que camina.
Lo primero que vamos hacer es crear las animaciones
Una vez creadas las animaciones las borramos y hacemos lo siguiente
Ahora en animaciones Botón izquierdo create State, From New Blend Tree
bien pinchamos doble click sobre Blend Tree y nos saldrá la siguiente
aquí lo tenemos y justo a la derecha tenemos las animaciones que anteriormente hemos creado y posteriormente borrado
Ahora en la izquierda vamos a crear dos Float MovX, MoveY y de nuevo seleccionamos Blend Tree y hacemos lo siguiente
1D vamos a cambiarlo por 2D siempre Directional y despues cambiaremos el nombre arriba blend Tree
Una vez hecho esto le damos a + add Motion field y creamos cuatro animaciones que son las que tenemos y hemos creado
y hay copiamos cada una de las animaciones
así deberían de quedar todas, despues vamos al script del personaje del movimiento con teclado, tenemos dos opciones lo dejamos tal cual o ponemos el nuevo scrip junto al anterior yo lo he puesto todo de nuevo
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MOVIMIENTO : MonoBehaviour { public float speed; private Rigidbody2D myRigibody; private Vector3 mover; private Animator animator; Vector2 mov; void Start() { animator = GetComponent<Animator>(); myRigibody = GetComponent<Rigidbody2D>(); } void Update() { mover = Vector3.zero; mover.x = Input.GetAxisRaw("Horizontal"); mover.y = Input.GetAxisRaw("Vertical"); UpdateAnimationAdnMove(); } void UpdateAnimationAdnMove(){ if (mover != Vector3.zero){ moveCharacter(); animator.SetFloat("MovX", mover.x); animator.SetFloat("MoveY", mover.y); animator.SetBool("moving", true); } else{ animator.SetBool("moving", false); } } void moveCharacter(){ myRigibody.MovePosition( transform.position + mover * speed * Time.deltaTime); } }
Una vez hecho esto vamos de nuevo en animaciones y hacemos lo mismo