3D Top down character movement.

I'v been Working on a project for weeks, and cannot figure out top-down character movement. By this I mean How to get the character To Always move in the same direction No matter what direction the character is facing while rotating. Iv tried using movement based on the axis of an empty game object. I'm using a raycast for the mouse rotation and that works fine but i cannot figure out how to get the character To always move in the same direction. any help is appreciated.

Here's how I handle it in my top-down shooter:

I set my inputMovement as follows:

inputMovement = Vector3( Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical") );

Then I use translate to move within the world space:

transform.Translate(inputMovement*Time.deltaTime*moveSpeed, Space.World);

make your camera never rotate around the player (fixed position camera) and move based off the camera's coordinate system.