I'm trying to make the Line Renderer reflect multiple times on any number of objects that appear in the path of the rendered line. I'm trying to do it by increasing the number of vertices. But it limits the number of times I can replicate the behaviour and increases the length of the script. Is there a way to do it using Loops and Arrays?

I was actually looking for a way to dynamically reflect the Raycast so that when if the rotation of the reflective object changes, the Line Renderer adapts to the change. So I looked a lot before I found this post. He explains almost each line and the code works.

Is the ExampleClass position the location of the mirror?
Since the originalObject is a variable, I'll assume so.
I'll also assume the object has a Collider component on it, that defines the angle of the mirror (at the hit point).

The ray will start at the originalObject, and be directed towards the center of the mirror (uncompiled/tested, example only):

line.SetPosition (0, originalObject.position);
Vector3 OriginalToMirrorVector= transform.position-originalObject.position;
Ray ray = new Ray(originalObject.position, OriginalToMirrorVector);
//100 is just too arbitrary a length, so lets use the actual distance (vector magnitude) between the object and the mirror
if(Physics.Raycast (ray, out hit, OriginalToMirrorVector.magnitude))
{
line.SetPosition (1, hit.point);
if (hit.collider.tag == "Mirrors")
{
//this assumes, for simplicity, that this object is the only one with the "Mirrors" tag
reflectedObject.position=hit.point + OriginalToMirrorVector.magnitude * Vector3.Reflect (OriginalToMirrorVector, hit.normal);
line.SetPosition (2, reflectedObject.position);
}
}
else //not hit! sanity check- if this fails, you may not have the collider component enabled.
{
line.SetPosition (1, transform.position);
}