Detect click event on UIVertex

I am drawing lines on a canvas using the ‘UIVertex’ struct and I would like to be able to detect click events on the lines I have drawn.

Here is how I draw lines (largely inspired from this tutorial =>

):

void DrawVerticesForPoint(Vector2 point, float angle, VertexHelper vh)
{
vertex = UIVertex.simpleVert;

//vertex.color = Color.red;

vertex.position = Quaternion.Euler(0, 0, angle) * new Vector3(-thickness / 2, 0);
vertex.position += new Vector3(unitWidth * point.x, unitHeight * point.y);
vh.AddVert(vertex);

vertex.position = Quaternion.Euler(0, 0, angle) * new Vector3(thickness / 2, 0);
vertex.position += new Vector3(unitWidth * point.x, unitHeight * point.y);
vh.AddVert(vertex);
}

Any idea?

Here is the solution I have found thanks to this post:

public bool PointIsOnLine(Vector3 point, UILineRenderer line)

{

Vector3 point1 = line.points[0];
Vector3 point2 = line.points[1];

var dirNorm = (point2 - point1).normalized;
var t = Vector2.Dot(point - point1, dirNorm);
var tClamped = Mathf.Clamp(t, 0, (point2 - point1).magnitude);
var closestPoint = point1 + dirNorm * tClamped;
var dist = Vector2.Distance(point, closestPoint);

if(dist < line.thickness / 2)
{
return true;
}

return false;

}

The UILineRenderer class is the class I have which represents my lines.

line.points[0] and line.points[1] contain the coordinates of the two points which determine the line length and position. line.thickness is the… thickness of the line :open_mouth: