- Home /
How to add LineRenderer positions based on an Array of GameObjects
I've got an Array of GameObjects so I can generate a 'path' of positions at run time. The Array is public as it's important I can easily define the amount in the editor and position the GameObjects easily in the editor's viewport.
I also have a LineRenderer with the intention of drawing a line from the first GameObject in the Array to the last. I have used this code to draw a line between the first and second GameObjects;
lineRenderer.SetPosition(0, pathNodes[0].transform.position);
lineRenderer.SetPosition(1, pathNodes[1].transform.position);
My question is - What is the best way to set the number of positions for the LineRenderer based on the length of the Array then match the positions of the LineRenderer to the positions defined by the GameObjects in the Array?
Answer by aldonaletto · Nov 15, 2011 at 09:08 PM
You must set the vertex count and use a for loop to assign the nodes to the vertex:
... lineRenderer.SetVertexCount(pathNodes.length); for (var i: int = 0; i < pathNodes.length; i++){ lineRenderer.SetPosition(i, pathNodes[i].transform.position); }
Answer by soilmaster · Apr 20, 2017 at 05:38 PM
Just an update to anyone trying to set the points on a line render from an array, the current method is now (version 5.6):
Vector3[] points = new Vector3[3];
//Something something ...
lineRenderer.positionCount = points.Length;
lineRenderer.SetPositions(points);
Hi, I cannot make this new update working. Could you be more specific please?
Your answer
Follow this Question
Related Questions
How do I check multiple gameObjects transform positions? 3 Answers
Array Help GameObject Length Inventory 1 Answer
Making a button from a list of arrays. 0 Answers
selected object in array lost in translation 0 Answers
How to remove objects from a list ? 3 Answers