Move model in specific direction in 3D-space upon pressing the arrowkeys?

I have a character in my game that I want to control using the arrowkeys or WASD-keys. I can get the character to face the right direction if the arrowkeys are pressed, but I don’t know how to move him in 3D-space upon holding the key(s) down.
The script I have is a modified version from the Stealth-tutorial… I couldn’t use the exact same code for some reason, don’t know if it’s because the model isn’t the same or what it is. But I couldn’t import the animations to the Animator…

Anyways, is there a simple way to implement movement to my code? Oh and another thing… When the player pressed the Attack keys, the whole animation won’t play unless the Attack-keys are held down. How can I make it so that when the player presses the Attack-keys the whole animation will be played eventhou the player released the key?

I’m sorry for posting such stupid questions on the forum, I’ve searched the forum but couldn’t find a solution. Maybe I just suck at searching…

using UnityEngine;
using System.Collections;

public class PlayerMovement : MonoBehaviour
{
	public float turnSmoothing = 7f;
	
	void FixedUpdate()
	{
		float h = Input.GetAxis("Horizontal");
		float v = Input.GetAxis("Vertical");
		bool attack01 = Input.GetButton("Attack01");
		bool attack02 = Input.GetButton("Attack02");
		
		MovementManagement(h, v, attack01, attack02);
	}
	
	void MovementManagement(float horizontal, float vertical, bool attack01, bool attack02)
	{
		if(horizontal != 0f || vertical != 0f)
		{
			animation.CrossFade("Run");
			Rotating(horizontal, vertical);
		}
		else
		{
			animation.CrossFade("Idle");
		}
		
		if(attack01)
		{
			animation.CrossFade("Attack01");
		}

		if(attack02)
		{
			animation.CrossFade("Attack02");
		}
		
	}
	
	void Rotating(float horizontal, float vertical)
	{
		Vector3 targetDirection = new Vector3(horizontal, 0f, vertical);
		Quaternion targetRotation = Quaternion.LookRotation(targetDirection, Vector3.up);
		Quaternion newRotation = Quaternion.Lerp(rigidbody.rotation, targetRotation, turnSmoothing * Time.deltaTime);
		
		rigidbody.MoveRotation(newRotation);
	}
}

you can use Translate for moving. Luckily, the player is in the right direction, so you only need to move him forward in local space, which I think is the default for Translate. So you would add a movement function and call it after the rotating function in the first set of brackets.

        if(horizontal != 0f || vertical != 0f)

        {

            animation.CrossFade("Run");

            Rotating(horizontal, vertical);

          Move();

        }

Then add the move function after the Rotating function:

void Move()
{
       transform.Translate(Vector3.forward * Time.deltaTime * speed);
}

You would also have to add a speed variable at the top under the turnSmoothing variable:

public float speed = 3.0f;

and change that variable to get the right speed.

It would probably be a good idea to find a few scripting tutorials to improve in that line of game development.