Physics provokes shaking!

Hi all!

I have a problem with physics. There is a cube on a plane in my scene. I control cube’s moving and turning in Update() method with Transform Component ie with methods transform.Translate() and transform.Rotate(). And everything was good. But I added Rigidbody Component and Box Collider Component to the cube and added Mesh Collider Component with parameter Mesh equal to Plane to the plane. And ever since when I move cube it shakes! When the cube is in the air it does not shake but when it lands under the influence of gravitation it begins to shake! Here’s the compiled project: http://rghost.ru/38372056

Here is the code, controlling the cube:

// математические функции
private var Atan2 = Mathf.Atan2;
private var Sin = Mathf.Sin;
private var Cos = Mathf.Cos;
private var pi = Mathf.PI;

// здесь все о камере
var cam : GameObject;
var camDistance : float = 4.0f;
var camAngle : float = -1.1f;
private var camNewAngle : float;

// скорости перемещения и вращения
var speed : float = 5.0f;
var jumpSpeed : float = 10.0f;
var rotationSpeed : float = 1.0f;

function Start () : void {
	// устанавливаем камеру в начальное положение
	cam.transform.localPosition.y = Cos(camAngle)*camDistance;
	cam.transform.localPosition.z = Sin(camAngle)*camDistance;
	cam.transform.eulerAngles.x = 0;
	cam.transform.Rotate((camAngle+pi/2)*180/pi, 0, 0);
}

function Update () : void {
	// двигаем наш кубик
	transform.Translate(Input.GetAxis("Horizontal")*speed*Time.deltaTime, 0, 0);
	transform.Translate(0, 0, Input.GetAxis("Vertical")*speed*Time.deltaTime);
	transform.Rotate(0, Input.GetAxis("Mouse X")*rotationSpeed, 0);
	
	// поворачиваем кубик и камеру
	camNewAngle = camAngle+Input.GetAxis("Mouse Y")*rotationSpeed*Time.deltaTime;
	if (camNewAngle > -pi && camNewAngle < 0) {
		cam.transform.localPosition.y = Cos(camNewAngle)*camDistance;
		cam.transform.localPosition.z = Sin(camNewAngle)*camDistance;
		cam.transform.Rotate((camNewAngle-camAngle)*180/pi, 0, 0);
		camAngle = camNewAngle;
	}
}

function FixedUpdate () : void {
	if (Input.GetKeyDown("space")) {
		rigidbody.velocity.y = 10;
	}
}

Rigidbodies just don’t play well with transform. Youll need to move it some other way such as addforce