Character moviment

I have a question:How to do a character movement script?
In my game a thank is the character,I until create a simple movement script,look:

var speed: int;
function Update () {
    var x = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
    var y = 0;
    var z = Input.GetAxis("Vertical") * speed * Time.deltaTime;
    transform.Translate(x , y, z );
}

As you can see this code have a big problem if i need move to right or left it does so in a very strange way,to be more realistic i want to rotate the thank(45º i think),but how can i do this?
P.S.:And sorry for my bad English,I’m Brazilian.

Remove the x value, and instead use Rotate:

transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime, 0);

Uau!It works!thanks so much!