Показать сообщение отдельно
Старый 14.01.2011, 00:13   #33
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений
(для 100 пользователей)
Сообщение Ответ: C# Быстрый поворот/перемещение множества объектов

Сообщение от ABTOMAT Посмотреть сообщение
1. Берём 3 точки на поверхности террайна (и не говорите мне, что в юнити так нельзя) - сам куб + 2 любые рядом.
2. Из них делаем два вектора с началом в кубе.
3. Векторно перемножаем.
4. Нормаль готова, получите и распишитесь.
Да ладно, вообщем с высотой я уже разобрался.
А вот с нормалью тупик.
Делаю так:

Vector3 n=terrainData.GetInterpolatedNormal(x/1024,y/1024);
cube.transform.rotation = Quaternion.Euler(n);
GetInterpolatedNormal возвращает Vector3 я так понял в Радианах, но может быть и нет. А Quaternion.Euler должен быть вроде бы в градусах.
Кубики не ворочаются так как числа варьируются не от 0-360, а от ~0..1.
Как преобразовать?
(Offline)
 
Ответить с цитированием