- Home /
The question is answered, right answer was accepted
Edit one element in Vector3 array
So I'm making a script where a character follows a line that is drawn through the linerenderer. To store the "waypoint" positions, I made a vector3 array. But the problem I'm having is, when I'm editing the values of the array in a for loop, instead of editing just the last element it's editing all of them.
Here's the code I'm having trouble with:
public class lineDraw : MonoBehaviour {
public LineRenderer lineRender;
public Transform origin;
int numberOfPoints;
Vector3 mousePos;
public Vector3[] waypointPlace;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
waypointPlace = new Vector3[numberOfPoints];
if(Input.GetKey(KeyCode.Mouse0)) {
numberOfPoints++;
lineRender.SetVertexCount(numberOfPoints);
Vector3 mousePos = new Vector3(0,0,0);
mousePos = Input.mousePosition;
mousePos.z = 1.0f;
Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);
lineRender.SetPosition(numberOfPoints - 1, worldPos);
//add mouseposition to array
for (int i = 0; i < waypointPlace.Length; i++){
waypointPlace[i] = new Vector3 (mousePos.x,mousePos.y,mousePos.z);
}
}
if(Input.GetKeyUp(KeyCode.Mouse0)) {
lineRender.SetVertexCount(0);
numberOfPoints = 0;
}
}
}
In this picture you can see that all the elements have the same value, and I'm wondering what I'm doing wrong
Answer by Sir_Everard · Feb 15, 2015 at 11:30 PM
Well a for loop is going to iterate through every element then run the code. If you just want to edit the last element in array remove your loop and use:
waypointPlace[waypointPlace.length-1] = new Vector3 (mousePos.x,mousePos.y,mousePos.z);
Thanks! The thing about the for loop going through every element was really good to know!
Follow this Question
Related Questions
Moving Object to LineRenderer-line 1 Answer
Line renderer rotation and alignment 1 Answer
slowly rotate a object *need quick fix* 0 Answers
Linerenderer doesn't match my ray. 1 Answer
Trying to make a for loop with an array of Vector3 0 Answers