3DTopdown Shooter Aim

I been working on A 3D topdown shooting and I got the basic down. But what I’m trying to do now. Is to make it so the movement control don’t change when you rotation. PLZ HELP.

#pragma strict

var speed : float = 10; //Variables
var aim: Vector3;
var Move: Vector3;

function Update()
{

var h : float = Input.GetAxisRaw ("Horizontal");
var v : float = Input.GetAxisRaw ("Vertical");

transform.Translate(Vector3(h,0,v) * speed *  Time.deltaTime);

var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if(Physics.Raycast (ray, hit, 100))
{
aim.x = hit.point.x;
aim.z = hit.point.z;
}

if(Input.GetMouseButtonDown(0))
{
transform.LookAt(transform.position + aim);
}

}

I got the one to move up. But how would you do A,S,D, and then all the 45 one

if(Input.GetButton(“w”))
{
transform.position += Vector3.forward * Time.deltaTime;
}