camera transform not working when getting axis position

I’m trying to constrain my camera position between boundaries but when I call transform.position.x or transform.position.z the camera won’t move. Here’s the script:

#pragma strict

var speed = 20.0;
var cam = Camera.mainCamera;

function Update () {
var x = Input.GetAxis(“Horizontal”) * Time.deltaTime * speed;
var z = Input.GetAxis(“Vertical”) * Time.deltaTime * speed;

var xPos = cam.transform.position.x;
var zPos = cam.transform.position.z;

if(xPos > 2100 && xPos < 5100) {
transform.Translate(x, 0, z, Space.World);

If I put the translate call before setting the xPos and zPos vars it works, but afterwards the script doesn’t work. It makes no sense to me.

Thanks for the help!

well, I guess the camera’s x position is not between 2100 and 5100… I bet if you get rid of this line : if(xPos > 2100 && xPos < 5100)

it’ll work

you should be able to see exactly what the position x is on the camera by keeping an eye on it in the inspector, that should help you set the correct limits

The Camera lies within those bounds…even if i take the if statement out and just have the translate call after the pos var declaration it doesn’t do anything. if i put the translate call before the pos var declarations it works…it doesn’t make sense

I figured it out…apparently since I had the script attached to the camera in the first place I just had to get rid of the “cam” variable declaration and it worked like a charm.