- Home /
Question by
JakeM · Jun 15, 2012 at 05:05 AM ·
c#linerenderer
Creating a LineRenderer: its always null
I am attempting to create a LineRenderer on the fly(at run time). But when I declare a LineRenderer its always null for some reason. I am using a C# script to create the object
What am I doing wrong? Can you suggest what needs changing?
void OnGUI() {
if (GUI.Button (new Rect(10,10,100,20), "Create")) {
LineRenderer lRend = (LineRenderer)GameObject.Instantiate(new LineRenderer());
// I've also tried the below
// LineRenderer = new LineRenderer();
Debug.Log ("IS NULL"+(lRend == null).ToString ()); // its always NULL??
lRend.SetColors (new Color(100,0,0,100), new Color(0,0,100,100));
lRend.SetWidth(10, 1);
lRend.SetVertexCount(vertices.Length);
for (int i=0; i<vertices.Length; i++)
lRend.SetPosition(i, vertices[i]);
}
}
Comment
Answer by Amanna · Apr 12, 2016 at 04:42 PM
GameObject gObject = new GameObject("MyGameObject");
LineRenderer lRend = gObject.AddComponent<LineRenderer>();
lRend.SetColors (Color.red,Color.blue);
lRend.material = new Material(Shader.Find("Particles/Additive"));
lRend.SetWidth(1, 1);
lRend.SetPosition(0,Vector3.zero);
lRend.SetPosition(1,Vector3.one);
Answer by rutter · Jun 15, 2012 at 05:15 AM
This line:
LineRenderer lRend = (LineRenderer)GameObject.Instantiate(new LineRenderer());
Could be much simpler:
LineRenderer lRend = new LineRenderer();
This will make the LineRenderer
null. I just tried it. You need to create an empty GameObject
and attach the LineRenderer
to that.
GameObject newLine = new GameObject("Line");
LineRenderer lRend = newLine.AddComponent<LineRenderer>();
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Line renderer corner issue (Gui Shader) 0 Answers
C# create linerenderer line copy based on spectrum data 2 Answers
Object follows a moving ellipse 0 Answers