Have a 3d character face the direction they're walking

So I’m working on getting a 3D character to move in a top-down camera perspective (think Animal Crossing or basically any RPG), and I want it to move in tandem with a 2D sprite. I can get them to move, but not at the same speed. And when I change the code so they move at the same speed, the 3D model rotates the wrong way. If someone could point out what I’m doing wrong that would be great because I cannot for the life of me understand what needs tweaking. Thanks again!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Movement3D : MonoBehaviour {
    // Start is called before the first frame update
    
        public Animator animator;
		public float moveSpeed = 0f;
		public float rotationSpeed = 100.0f;
		
		
		
		
	void Start ()
	{
		animator = GetComponent<Animator>();	//Calls the "Animator" function in the 3D model	
	}

    // Update is called once per frame
    void Update()
	{

	     float moveHorizontal = Input.GetAxisRaw ("Horizontal");
         float moveVertical = Input.GetAxisRaw ("Vertical");

         Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);

         transform.rotation = Quaternion.LookRotation(movement);
 
         transform.Translate (movement * Time.deltaTime, Space.World);
		
	     float translation = Input.GetAxis("Vertical")+Input.GetAxis("Horizontal")*moveSpeed;
		
	     transform.position = transform.position + movement * Time.deltaTime;
		
		
			if(translation != 0 )		// != means "does NOT equal"
			{
				animator.SetBool("IsWalking", true);
				
			}
			else
			{
				animator.SetBool("IsWalking", false);
				
			}		
    }
}

Nevermind, upon further tweaking I FINALLY got it down: I needed to make another float to compensate for both vertical AND horizontal movements. If anyone else has trouble with this, I hope this helps you!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Movement3D : MonoBehaviour {
    // Start is called before the first frame update
    
        public Animator animator;
		public float moveSpeed = 0f;
		public float rotationSpeed = 10.0f;
		
		
		
		
	void Start ()
	{
		//moveSpeed = 1f;
		animator = GetComponent<Animator>();	//Calls the "Animator" function in the 3D Frog
		
		
		
		
	}
    // Update is called once per frame
    void Update()
	{
		
		
		
		
		 float moveHorizontal = Input.GetAxisRaw ("Horizontal");
         float moveVertical = Input.GetAxisRaw ("Vertical");
 
 

		 Vector3 movement = new Vector3(moveHorizontal + 0.001f, 0.0f, moveVertical);



		 transform.rotation = Quaternion.LookRotation(movement);
 
 
		
		float translationVertical = Input.GetAxis("Vertical");
		float translationHorizontal = Input.GetAxis("Horizontal");
		

		
	
		
			if(translationVertical != 0 || translationHorizontal != 0 )		// != means "does NOT equal"
			{
				animator.SetBool("IsWalking", true);
				
			}
			else
			{
				animator.SetBool("IsWalking", false);
				
			}
    }
}