How do I detect when my player is moving in unity 2d?

I am trying to make a top down game with movement like in the game Binding of Isaac. I want my player to move all 4 directions facing one way, but when he shoots he faces the direction of where he is shooting, not the direction he is moving towards. I can figure most parts out, but I am not sure how to detect when he is moving in ANY direction so I can set a float “speed” to how fast he is moving and make it in the player animator controller if the speed is greater than 0.1 he will play a moving animation. I know I haven’t explained it very well, so I’ll just say I am trying to figure out how to set a float “speed” to however fast the player is moving, and it doesn’t matter what direction. Anyone have any answers?
Thanks!

You may check the direction of a Rigidbody2D by checking its velocity.

ThisRigidbody2D.velocity;    //catch the velocity, as a vector

ThisRigidbody2D.velocity.magnitude; //calculate the speed, always equal or more than 0

To let the trasform follow the rigidbody you may apply this:

 [RequireComponent(typeof(Rigidbody2D))]
 public class Rigidbody2DLookAt : MonoBehaviour
 {
    //to decide the minimal speed, if the rigidbody is moving slower than that we stop
    public float speedThreshold = 0.1f;
    //the offset if you need to adjust the rotation
    public float offset = 90f;

    //the rigidbody
    private Rigidbody2D _rigidbody2D;

    //cache the rigidbody at start (or awake)
    private void Start() { _rigidbody2D = GetComponent<Rigidbody2D>(); }

    private void Update()
    {
        //gets the velocity as a vector
        var velocity = _rigidbody2D.velocity;

        //stops following the rigidbody rotation if 'moving too slow
        if (velocity.magnitude <= speedThreshold) return;

        //calculate the angle and rotate the transform accordingly
        var angle = Mathf.Atan2(velocity.y, velocity.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle + offset));
    }
}