- Home /
Camera issue (storing temp variable C# problem)
Hi all,
I am converting some script from Unity Script to C# and am have a bit of a problem.
The line of code that is causing the problem is this.
camera.transform.position.x = Mathf.SmoothDamp(camera.transform.position.x, camera.transform.position.x + borderX, ref velocity.y, smoothTime);
And the error i am getting is this.
error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.position'. Consider storing the value in a temporary variable
I have been looking around at similar posts with the same problem, but i am not understanding what the error means or how to fix this problem. :(
can anyone help me through this.
Thanks.
Answer by ThermalFusion · Sep 13, 2012 at 10:12 PM
Vector3 tempPosition = camera.transform.position;
tempPosition.x = Mathf.SmoothDamp(camera.transform.position.x, camera.transform.position.x + borderX, ref velocity.y, smoothTime);
camera.transform.position = tempPosition;
Answer by epidemicz · Sep 14, 2012 at 12:10 AM
I believe that error is referring to the fact that you can not modify the x and y from position directly (you can only read them, not write).
Try this:
camera.transform.position = new Vector3(x,y,z);
Answer by goodhustle · Sep 14, 2012 at 12:07 AM
C# doesn't allow you to set the individual x,y,z components of the position Vector3. Instead, you'll need to create a new one like so:
`camera.transform.position = new Vector3(Mathf.SmoothDamp(camera.transform.position.x, camera.transform.position.x + borderX, ref velocity.y, smoothTime), camera.transform.position.y, camera.transform.position.z);`
Your answer
Follow this Question
Related Questions
How can i change a childs local position with a variable? 1 Answer
Distribute terrain in zones 3 Answers
Camera variable problems 0 Answers
Drag And Drop with Perspective Camera 1 Answer
Multiple Cars not working 1 Answer