How can i add a collider to my line renderer script?

I have bit of code here that by holding, dragging and releasing my mouse button can make me draw lines in game. What i need help with is how i can add a type of collider to this. Help would be appreciated!

Code:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class DrawLine : MonoBehaviour 
{
	private LineRenderer line;
	private bool isMousePressed;
	private List<Vector3> pointsList;
	private Vector3 mousePos;
	
	// Structure for line points
	struct myLine
	{
		public Vector3 StartPoint;
		public Vector3 EndPoint;
	};
	//    -----------------------------------    
	void Awake()
	{
		// Create line renderer component and set its property
		line = gameObject.AddComponent<LineRenderer>();
		line.material =  new Material(Shader.Find("Particles/Additive"));
		line.SetVertexCount(0);
		line.SetWidth(0.1f,0.1f);
		line.SetColors(Color.green, Color.green);
		line.useWorldSpace = true;    
		isMousePressed = false;
		pointsList = new List<Vector3>();
	}
	//    -----------------------------------    
	void Update () 
	{
		// If mouse button down, remove old line and set its color to green
		if(Input.GetMouseButtonDown(0))
		{
			isMousePressed = true;
			line.SetVertexCount(0);
			pointsList.RemoveRange(0,pointsList.Count);
			line.SetColors(Color.green, Color.green);
		}
		else if(Input.GetMouseButtonUp(0))
		{
			isMousePressed = false;
		}
		// Drawing line when mouse is moving(presses)
		if(isMousePressed)
		{
			mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
			mousePos.z=0;
			if (!pointsList.Contains (mousePos)) 
			{
				pointsList.Add (mousePos);
				line.SetVertexCount (pointsList.Count);
				line.SetPosition (pointsList.Count - 1, (Vector3)pointsList [pointsList.Count - 1]);
			}
		}
	}

}

Hey mikhailovic
your code looks similar to my blog Draw Line on mouse move and detect line collision in unity 3D.

Now to add collider to this line, check this How to add collider to Line Renderer in Unity

Hope it will help you.

Thanks for all the suggestions, I had trouble with them though.
Here is a quick tutorial on how I solved this problem.
First a list of what we need, write these down and fill them in:

startPoint of the line

endPoint of the line

lineLength which between these two points

lineWidth which you can get from the line renderer by calling YourLineRendererHere.endWidth

midPoint which is simply (startPoint + endPoint) / 2

slope which recall is (y2 - y1)/(x2-x1)

Thats It!

let’s get the slope

y2 = endPoint.z

y1 = startPoint.z

x2= endPoint.x

x1 = startPoint.x

lets plug it in, don’t calculate this just leave it
slope = (endPoint.z - startPoint.z)/ (endPoint.x - startPoint.x)

!!! IMPORTANT !!!

In 3d space you use the x and z axis becuase the y is pointing up and we don’t care about that.
In 2d space you use the x and y axis, you would also use Vector2 points in your function not Vector 3

Here’s your function–

 private void AddColliderToLine(LineRenderer line, Vector3 startPoint, Vector3 endPoint)
    {
	//create the collider for the line
        BoxCollider lineCollider = new GameObject("LineCollider").AddComponent<BoxCollider>();
    	//set the collider as a child of your line
        lineCollider.transform.parent = line.transform; 
	// get width of collider from line 
	float lineWidth = line.endWidth; 
	// get the length of the line using the Distance method
        float lineLength = Vector3.Distance(startPoint, endPoint);      
        // size of collider is set where X is length of line, Y is width of line
        //z will be how far the collider reaches to the sky
        lineCollider.size = new Vector3(lineLength, lineWidth, 1f);   
	// get the midPoint
        Vector3 midPoint = (startPoint + endPoint) / 2;
	// move the created collider to the midPoint
        lineCollider.transform.position = midPoint;


       //heres the beef of the function, Mathf.Atan2 wants the slope, be careful however because it wants it in a weird form
	//it will divide for you so just plug in your (y2-y1),(x2,x1)
	float angle = Mathf.Atan2((endPoint.z - startPoint.z), (endPoint.x - startPoint.x));
	
	// angle now holds our answer but it's in radians, we want degrees
	// Mathf.Rad2Deg is just a constant equal to 57.2958 that we multiply by to change radians to degrees
        angle *= Mathf.Rad2Deg;

	//were interested in the inverse so multiply by -1
        angle *= -1; 
	// now apply the rotation to the collider's transform, carful where you put the angle variable
	// in 3d space you don't wan't to rotate on your y axis
        lineCollider.transform.Rotate(0, angle, 0);
    }

Thanks for checking the tutorial out!!!

Heres the same thing with pictures: http://zackgrizzle.ninja/tutorials.html

Since Unity 2018.2, you can now use the public method BakeMesh of LineRenderer. This will give you the mesh along the LineRenderer with all the segments. You can then use this mesh with a mesh collider in order to detect Collisions and Raycasts.

LineRenderer lineRenderer = line.GetComponent<LineRenderer>();
MeshCollider meshCollider = line.AddComponent<MeshCollider>();

Mesh mesh = new Mesh();
lineRenderer.BakeMesh(mesh, true);
meshCollider.sharedMesh = mesh;

I tested it and it worked on my project. Let me know what you think about it and if it helps you !

You can try my plugin:
Unity Asset Store - The Best Assets for Game Making can try this:
Unity Asset Store - The Best Assets for Game Making