Transform.right misunderstanding

Hello everybody!

I think there’s something abount transform.right that I don’t understand at all.
The pictures below show 4 objects with the following script attached:

function Update () 
{
	this.transform.Translate(-this.transform.right * Time.deltaTime);
}

From this function I would expect them to each move towards their negative local x-axis.
In the pictures you can see what they do (top and bottom one move towards global x-axis, left and right one move away from global x-axis).

30499-question_a.png
30500-question_b.png

Why is only one of them moving towards its actual negative local x-axis?

The Translate function works in local space by default. To get an object to move to its right, you could either pass Vector3.right, or specify Space.World in the optional second argument.

I had the same problem and I used Vector3.right instead of tranform.right and it solved the problem,
however I would appreciate if you could explain the difference between the two.

Thanks
Phil