Question by
Wineburgen · Mar 03, 2016 at 12:42 PM ·
c#linerenderer
Linerenderer disappears after second linerenderer appears
I want to draw two separate line renderers in a scene. One line renderer starts as soon as the script starts running, the other line renderer starts after a certain trigger. However, as soon as the second line renderer starts, the line of the first line renderer disappears. A sphere that moves over this line continues moving in the place where the line should be.
This is how I make the different line Renderers:
LineRenderer StartlineRenderer;
LineRenderer[] CheckLinerender = new LineRenderer[18];
void Start()
{
StartlineRenderer = gameObject.AddComponent<LineRenderer>();
StartlineRenderer = GetComponent<LineRenderer>();
StartlineRenderer.material = StartMat;
StartlineRenderer.SetWidth(w, w);
for (int i = 0; i < 18; i++)
{
CheckLinerender[i] = new GameObject().AddComponent<LineRenderer>();
CheckLinerender[i] = GetComponent<LineRenderer>();
CheckLinerender[i].material = CheckMat[i];
CheckLinerender[i].SetWidth(w, w);
}
}
Afterwards, I go to other scripts to draw the line renderers:
lineballs0.LINEballs0(StartlineRenderer, StartSphere, StartText3d);
T1CHECK1.t1Check1(CheckLinerender[0],CheckSphere[0], Check1Text3d[0]);
These scripts look as follows:
public static void t1Check1(LineRenderer t1c1, Transform Sphere, TextMesh text1)
{
float temp = READER.count;
n = 10;
float sfy = 50f;
t1c1.SetVertexCount(filereader.lastNumberInclusive + 1 + 2 );
int k = 0;
for (int i = 0; i < filereader.lastNumberInclusive ; i++)
{
Vector3 vtemp;
vtemp.x = -200 - 1 * (float)i + filereader.lastNumberInclusive / 2;
vtemp.y = sfy + TEST1.Check1[0, i];
vtemp.z = 200;
t1c1.SetPosition(k, vtemp);
k++;
}
Vector3 vPos;
vPos.x = -200 - 1 * (temp - n) + filereader.lastNumberInclusive / 2;
vPos.y = sfy + TEST1.Check1[0, temp - n];
vPos.z = 200;
Sphere.position = vPos;
text1.transform.position = vPos;
text1.text = TEST1.Check1[0, temp - n].ToString("0");
}
AND:
public static void LINEballs0 (LineRenderer lineRenderer, Transform Sphere, TextMesh text1)
{
float sfy = 3f;
int temp = READER.count;
if (temp < 0)
temp = 1;
lineRenderer.SetVertexCount(filereader.lastNumberInclusive+1+2);
int k = 0;
for (int i = 0; i <= filereader.lastNumberInclusive; i++)
{
Vector3 vtemp;
vtemp.x = -200 - 1 * (float)i + filereader.lastNumberInclusive / 2;
vtemp.y = sfy* filereader.var[0, i];
vtemp.z = 200;
lineRenderer.SetPosition(k, vtemp);
k++;
}
int j = filereader.frameCount;
Vector3 vPos = new Vector3 (-200 - 1*j + filereader.lastNumberInclusive / 2, sfy * filereader.var[0, j], 200);
Sphere.position = vPos;
text1.transform.position = vPos;
text1.text = j.ToString() + " " + filereader.var [0, j].ToString("0");
}
The latter function starts running immediately, the prior starts after a certain timespan. Can anybody tell me why my second line renderer's appearance makes my other line renderer disappear?
Thanks!
Comment