- Home /
Laser LineRenderer Tapers after first Reflect
I built a simple laser loop script that bounces after hitting an object with a "Mirror" tag. The script works fine but visually the LineRenderer end point tapers down to 0 after the first bounce even though I've set the start and endpoints both to .075 (in the component settings).
The laser can bounce multiple times but only the last bounce keeps a consistent width, all other past laser lines between bounces or from the origin will taper from .075 to 0.
I'm using an orthographic camera at x:30 rot. I've checked the width values multiple times and even set them as I render the code, but nothing seems to matter.
Any ideas? Code below:
void RenderLaser(){
hitCount = 1;
laserActive = true;
teleActive = false;
curPos = transform.position;
curRot = transform.forward;
laserLine.SetVertexCount(1);
laserLine.SetPosition (0, transform.position);
while (laserActive) {
hitCount++;
laserLine.SetVertexCount(hitCount);
if (Physics.Raycast (curPos, curRot, out laserHit, range)) {
//hitCount++
curPos = laserHit.point;
curRot = Vector3.Reflect(curRot, laserHit.normal);
laserLine.SetPosition(hitCount-1, laserHit.point);
if(laserHit.collider.tag != "Mirror"){
laserActive = false;
if(laserHit.collider.tag == "WinFace"){
Debug.Log("Teleport Activated.");
teleActive = true;
}
}
} else {
//hitCount++
laserActive = false;
laserLine.SetPosition(hitCount-1, curPos+100*curRot);
}
if (hitCount > limit){
laserActive = false;
}
//END WHILE
}
}
Your answer
Follow this Question
Related Questions
Only One LineRenderer Renders 0 Answers
LineRenderer End Width Bug 2 Answers
LineRenderer (Laser Beam) is not following the ray it's going on the wrong direction when reflecting 1 Answer
Inconsistent Reflection/Ricochet of 2D Lines at Specific Angles via Raycasting and 2D Colliders 2 Answers
Bullet reflect not working properly 1 Answer