- Home /
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 :D
Louis
Answer by Dave-Carlile · Jan 30, 2013 at 08:05 PM
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);
Your answer

Follow this Question
Related Questions
Why can't I get the transform from an instantiated object? 1 Answer
transform.position not setting position OR animation setting position even though it shouldn't 0 Answers
fixed distance for Vector3.moveTowards ? 1 Answer
Why can't I assign transform.position to a Vector3 object? 3 Answers
Why is rotation offset 1 Answer