Четверг, 18 Апреля 2024, 12:36

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вычислить перпендикуляр к поверхности (Mesh terrain)
Вычислить перпендикуляр к поверхности
andarkyДата: Пятница, 25 Сентября 2015, 16:51 | Сообщение # 1
старожил
Сейчас нет на сайте
У меня есть террейн, хотя правильнее назвать его Mesh.

Я хочу с помощью RayCast размещать на нём объекты.
Сейчас у меня они создаются в точках RayCastHit, но они торчат вверх,
а мне хотелось бы чтобы они ложились по рельефу.

Изначально все объекты висят над рельефом
в цикле Start() каждый объект райкастит вниз и вычислив точку пересечения принимает её координаты.
А угол я для разнообразия пробовал рандомить - но так еще ужаснее...

Т.е. я так понимаю нужно вычислять наклон полигона меша моего террейна?
Т.е. влазить в структуру Mesh.vertices

или как-то проще можно?



Моя страничка по дизайну
GameDev//Design//3D
Ютубчик
Storm54Дата: Пятница, 25 Сентября 2015, 18:12 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Кидаешь райкаст.

В RaycastHit получаешь нормаль, после чего используешь метод:
Quaternion.FromToRotation

Код

var rot = Quaternion.FromToRotation(Vector3.up, hit.normal);


Для лучшего результата можно пускать несколько райкастов из разных точек и брать среднее арифметическое. Например, если это автомобиль, то пускать райкаст вниз из каждого колеса.


Сообщение отредактировал Storm54 - Пятница, 25 Сентября 2015, 18:29
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вычислить перпендикуляр к поверхности (Mesh terrain)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг