Right now, the cube is moving up, down, left and right but it doesnt turn as its moving in the direction its going.
I want the cube to turn when its moving in the direction its heading towards.
the cube is on another cube that is flat and larger on the Y axis, so only X and Z are free.
Replace your Move() with this:
void Move()
{
Vector3 v3 = new Vector3(SnakeSpeed * Time.deltaTime *Input.GetAxis("Horizontal"),0,SnakeSpeed * Time.deltaTime *Input.GetAxis("Vertical"));
transform.Translate(v3, Space.World);
if (v3 != Vector3.zero)
transform.rotation = Quaternion.LookRotation(v3);
}