public static ProjectPointOnLine ( Vector3 linePoint, Vector3 lineVec, Vector3 point ) : Vector3 | ||
linePoint | Vector3 | |
lineVec | Vector3 | |
point | Vector3 | |
return | Vector3 |
public static Vector3 ProjectPointOnLine(Vector3 linePoint, Vector3 lineVec, Vector3 point)
{
//get vector from point on line to point in space
Vector3 linePointToPoint = point - linePoint;
float t = Vector3.Dot(linePointToPoint, lineVec);
return linePoint + lineVec * t;
}
public override Vector3 NearestPoint(PointerEventData data) { Ray lineRay = AttachPointRay(); Vector3 linePoint = Math3D.ProjectPointOnLine(lineRay.origin, lineRay.direction, data.pointerCurrentRaycast.worldPosition); return(linePoint); }