Using gameObject.translate moves it farther than expected

I have a setup using ngui where I want to use the camera to make a gui, but whenever i called Translate on a child of “UI Root” it moves very far.

My current setup have my “UI Root” set at the origin, and other menu’s move the camera left or right to navigate menus.
Whenever I select a menu (move right and move a menu into where im going to move my camera), I call translate on the child gameobject of “UI Root” that I want to select as a menu to display and navigate to.

My problem is when I call translate(screenSize*numberToMultiply) it move it over a lot, and it seems to negate it. I call:

uiObject.transform.Translate((screenResolutionWidth*offsetFromTitleMenu), 0,0);, where my width is 350 and my offset is 1, and it moves it to -56000 on the x axis (it is expected to move on only the x-axis).

Why would the child object move so far when I tell it to translate only 350 units left or right? I also look at the scale and multiply the 350 by the scale to compensate, but this also move it the -56000 units. Why would it use this?

I solved the problem. The parent object had a scale of 0.000625, which made me moving 350 units into a lot further (as translate calculates to world coords and scales up to scale 1.0).

I just multiplied the parent gameobject’s scale against how many units I wanted to move, and it positioned the child where I wanted it.

I wish unity would have this kind of information in the documentation.