В Unity можно использовать Raycasting для расчета различных измерений. Примеры, такие как диаметр, толщина стены и ширина. Один из способов сделать это - зафиксировать щелчок мышью пользователя на объекте и использовать RaycastHits для фиксации местоположения щелчка мыши на объекте, а затем использовать дополнительные лучи в зависимости от желаемого измерения.
На рисунке ниже: Толщина нажатых стен составляет 0,0098, 0,0096 и 0,0072. Ширина составляет 0,0615, 0,0611 и 0,060. Диаметр 0,0475.
Хотя эти измерения (предположительно) выполнены и рассчитаны правильно, неясно, как результаты переводятся в реальные единицы измерения.
Лучше всего это показано на четвертом изображении. Проверив тот же диаметр в других программах CAD, таких как NX, диаметр составляет 0,4210 дюйма или дюймов. Толщина и ширина также были рассчитаны как 0,075244 дюйма и 0,252872 дюйма соответственно.
Итак, как результаты в Unity (результаты, полученные с помощью Vector3.Distance для вычисления расстояния между двумя точками) переводятся в реальные единицы измерения?
Поиск в Google по этой теме дает общий ответ: измерения Unity - это «игровые единицы», и их можно использовать как угодно. Хотя я это понимаю, я не понимаю, как выполнить перевод «игровых единиц» или любых других единиц измерения Unity в результаты измерений, которые я могу видеть в программах САПР.
Результаты (CAD x Unity): Толщина: 0,075244 дюйма x 0,0098, 0,0096 и 0,0072. Ширина: 0,252872 дюйма x 0,0615, 0,0611 и 0,060. Диаметр: 0,4210 дюйма x 0,0475
(примечание 1: масштабы модели идентичны в Unity и внешней программе САПР.)
(примечание 2: небольшое изменение толщины и ширины является результатом измерений Unity под углами, при которых программа CAD измеряет расстояние между двумя плоскостями, то есть 0,009x и 0,06x.)
(примечание 3: игнорируйте неправильную маркировку ширины во втором визуальном элементе как «Толщина» и маркировку в дюймах во всех визуальных элементах Unity », поскольку оба они неверны).