Top down movement problem. Player rotates to right.

So here’s the problem. I have a cube, its original I know. Anyway, whenever I move forward it rotates, drags, or tilts, or whatever you wanna call it, to the right.

The cube is a rigid body. But when you I disable gravity it works just fine. I tried messing with the rigid body settings but it doesn’t change anything. The code it self is from the scripting reference for a simple car movement script.

The code:

#pragma strict


var speed : float = 5.0;
var rotationSpeed : float = 300.0;
var jumpHeight : float = 10;
var canJump : boolean = false;

function OnCollisionEnter(floorCol : Collision)
{
	if(floorCol.gameObject.name == "Floor")
	{
		canJump = true;
	}
}

function OnCollisionExit(floorCol : Collision)
{
	if(floorCol.gameObject.name == "Floor")
	{
		canJump = false;
	}
}


function Update ()
{
        // Get the horizontal and vertical axis.
        // By default they are mapped to the arrow keys.
        // The value is in the range -1 to 1
        var translation : float = Input.GetAxis ("Vertical") * speed;
        var rotation : float = Input.GetAxis ("Horizontal") * rotationSpeed;
        
        
        // Make it move 10 meters per second instead of 10 meters per frame...
        translation *= Time.deltaTime;
        rotation *= Time.deltaTime;
        
        // Move translation along the object's z-axis
        transform.Translate (0, 0, translation);
        // Rotate around our y-axis
        transform.Rotate (0, rotation, 0);
        
        if(Input.GetKeyDown("space") && canJump)
        {
        	rigidbody.AddForce (Vector3.up * jumpHeight);
        }

}

Using a different code now and same thing is happening.

public var moveSpeed : float = 4f;
public var turnSpeed : float = 200f;

function Update ()
{
    if(Input.GetKey(KeyCode.UpArrow))
        transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
    
    if(Input.GetKey(KeyCode.DownArrow))
        transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);
    
    if(Input.GetKey(KeyCode.LeftArrow))
        transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);
    
    if(Input.GetKey(KeyCode.RightArrow))
        transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);
}