I need some help with this script. It should check if you’re a relative location and if yes it teleports to you a new one. Then does that again. The problem is that after the second if, it teleports to (8, 1, 10) and not to (35, 1, 149).
void Start () {
}
void Update () {
if((transform.position.z > 128)&&(transform.position.x < 36)&&(transform.position.x > 31)){
transform.position = new Vector3(8, 1, 10);
}
if((transform.position.x < -22)&&(transform.position.z < 18)&&(transform.position.z > 9)){
transform.position = new Vector3(35, 1, 149);
}
}
}
I would recommend not to have the position values hardcoded and instead just assign objects and use their transform to set positions which you can then move around without having to change numbers in the code.
Its as simple as having empty gameobjects laying around in your scene and having your script reference these positions where you can call them stuff to keep track of them.
For your problem your operators are a bit weird in your if statements. Are you sure you dont want to use <= and >= or even just == where it will calculate the exact Vector3 position where your player will teleport. I think whats happening is that you want your player to reach and go through the second if-statement and get to its assigned position but it will fulfill the criteria for your first if-statement instead.
I would recommond to just have set transforms which you can move around in the scene where you can access them through script