var distantion = Vector3.Cross(point_1-line , line).sqrMagnitude/line.sqrMagnitude;
Для каждой фигуры будет свой алгоритм, если для куба: то узнаешь вектор поворота относительно вектора линии, а так как куб правильный, то длина от центра до точки = sqrt(.75 * scale^2), point = rot_vector_about_line * Mathf.sqrt(.75 * scale^2);
Только тогда оси куба должны быть направленны так, чтобы каждая ось проходила через 2 противоположные точки.
Вектор линии нужно будет параллельно переносить, что бы он проходил через центр куба.
Учитывать что нужный нам угол поворота <90 (а то получим противоположную точку) и ещё человеческий фактор
вроде так,но уверен на 50%