вопрос решен через функцию var nextHit = Physics2D.Raycast. я двигаю объект в сторону и каждый апдейт пускаю луч и смотрю расстояние до объекта, к которому хочу быть привязан. если расстояние больше порога, то ставлю объекту следующей позицией ту позицию, в котороую попал лучь