Specifying an x coord problems

Hey so I want to set my object ‘Player’'s x position to something specific (e.g. -30), but I’m having some problems doing so.
(The context is a sidescroller which resets the camera and player back to the far left once you reach the end).

This is the code for it:
GameObject player = GameObject.Find(“Player”);

void Update () 

  if(transform.position.x > 25.7)
      player.transform.position.x = -30.0f;


The error I get is:
Cannot modify a value type return value of `UnityEngine.Transform.position’. Consider storing the value in a temporary variable.

I’ve had a look for something to fix this but they all seem to just change the position over time
(e.g. position.x += changeInPosition;)

Anyway help would be much appreciated, thanks :smiley:


position is a struct property of transform. You can’t assign individual struct components on a property for various technical reasons. You need to create a new Vector3 with the desired values and assign the entire struct at once…

Vector3 p = player.transform.position;
player.transform.position = new Vector3(p.x - 30.0f, p.y, p.z);