Размещение этикеток равномерно вдоль изогнутой трехмерной сетки - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть один игровой объект me sh, который по существу представляет собой длинную линию, которая изгибается и наклоняется вверх / вниз. То, что я пытаюсь сделать, это сгенерировать некоторый текст вдоль этой линии с заданным интервалом расстояния. Скажем, каждые 100 единиц вдоль линии должен появиться какой-то текст. Если бы это была прямая линия, это было бы легко, но кривые и уклоны отталкивали меня.

Я нашел вершины, которые создали это я sh, выполнив:

model.GetComponent<MeshFilter>().mesh.vertices

Затем я преобразую их в мировое пространство, зацикливая их и выполняя:

meshFilter.gameObject.transform.TransformPoint(vertices[i])

Теперь эти вершины НЕ расположены равномерно. Для уклонов и кривых есть много вершин. Для более прямых частей их меньше. Но эти прямые части все еще немного различаются (обычно на ~ 10 от значения Y). Первоначально я просматривал и отслеживал расстояние, чтобы найти вершины, ближайшие к интервалу, но тогда я подумал, что они расположены равномерно.

Вот часть модели:

enter image description here

Здесь я покрасил все вершины в черный цвет, чтобы показать, насколько они уплотнены на кривых / склонах по сравнению с прямыми частями:

enter image description here

Вот инспектор для только что поставленной модели:

enter image description here

1 Ответ

1 голос
/ 17 апреля 2020

Используете ли вы статус c один я sh? В вашем решении, я думаю, что проблема вершин. Вы должны найти вершины вдоль своей линии и игнорировать их вертикальную группу, и это слишком сложно. Если ваш me sh может быть изменен игроком, я предлагаю вам использовать Trail Render Component, получить его вершины и решить простую задачу о рюкзаке , чтобы поставить ваших персонажей (предлагаю вам использовать TextmeshPro)

...