Поворот персонажа по указателю мыши

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Поворот персонажа по указателю мыши

Сообщение ZzaizZ 18 окт 2012, 19:00

На персонажа камера смотрит сверху. Требуется, чтобы он поворачивался в ту сторону, куда направлена мышь.
Я почитал доки и наткнулся на "transform.Rotate(float xAngel, float yAngel, float zAngel);" По оси X вращение не требуется, поэтому для "float xAngel" я пишу ему 0, а для "float yAngel" и "float zAngel" задаю "Input.mousePosition.y" и "Input.mousePosition.z". Но получается, что я задаю ему просто X и Z координаты положения курсора, а ему требуется нечто другое. Вот я и не могу понять, что именно.
Аватара пользователя
ZzaizZ
UNец
 
Сообщения: 3
Зарегистрирован: 18 окт 2012, 18:46
Откуда: Екатеринбург

Re: Поворот персонажа по указателю мыши

Сообщение Kayler 18 окт 2012, 19:10

Синтаксис:
Используется csharp
 void Update() {
        transform.LookAt(target);
    }


где target место (позиция курсора) куда должен повернуться персонаж
Аватара пользователя
Kayler
Адепт
 
Сообщения: 1038
Зарегистрирован: 25 авг 2010, 23:49
Откуда: Чувашия

Re: Поворот персонажа по указателю мыши

Сообщение ZzaizZ 19 окт 2012, 12:51

В доках написано, что у "Look.At" есть 2 атрибута:
target : Transform - это, я так понимаю, и есть координаты цели, куда должна поворачиваться болванка.
Но там есть ещё "worldUp : Vector3 = Vector3.up" - эту штуку я понять не могу. Те же самые доки говорят, что "Vector3.up" отвечает за перемещение по оси oY.
Я пробую просто сказать ему "transform.LookAt(Input.mousePos);" Но в таком случае, он вращается как-то непонятно.
Получается, что вращение происходит по всем 3-м осям.
Аватара пользователя
ZzaizZ
UNец
 
Сообщения: 3
Зарегистрирован: 18 окт 2012, 18:46
Откуда: Екатеринбург

Re: Поворот персонажа по указателю мыши

Сообщение Левш@ 19 окт 2012, 12:59

Его не на позицию курсора надо лукатить...
А на проекцию позиции курсора в 3Д.
Camera.ScreenToWorldPoint
А еще точнее из позиции курсора пускать рейкаст и ориентировать на точку пересечения луча с террайном.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Поворот персонажа по указателю мыши

Сообщение ZzaizZ 19 окт 2012, 14:35

То есть, если я всё правильно понял, мы кастуем луч из "Camera.main.ScreenToWorldPoint(Input.mousePosition)" вниз.
Если он пересекается с террейном, то мы запоминаем координаты пересечения (x,z), запихиваем их в Vector3 и уже, используя их, делаем "LookAt"?
Аватара пользователя
ZzaizZ
UNец
 
Сообщения: 3
Зарегистрирован: 18 окт 2012, 18:46
Откуда: Екатеринбург

Re: Поворот персонажа по указателю мыши

Сообщение Левш@ 19 окт 2012, 21:03

Если он пересекается с террейном, то мы запоминаем координаты пересечения (x,z), запихиваем их в Vector3 и уже, используя их, делаем "LookAt"?

Да, LookAt на hit.point.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 27