Не получается поворот персонажа за курсором мыши. 2D

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

Не получается поворот персонажа за курсором мыши. 2D

Сообщение submerset 06 ноя 2012, 13:43

Добрый день, пишу сюда не часто обычно все вопросы которые возникают уже решили раньше. По этому вопросу тоже куча тем, но не получается.. надо что бы просто "куб" поворачивался на курсор мыши в в плоскости ХоУ , камера направлена по оси Z. Значит он вроде бы и крутится должен по оси Z. Начитался доков и всяких постов и вот
Синтаксис:
Используется csharp
                mousePos = new Vector3(Screen.width/2,Screen.height/2, 0 );
                mousePos2= Input.mousePosition;
                mousePos.z=mousePos.y;
                mousePos.y=0;
               
                inputRotation = mousePos- mousePos2;
                transform.rotation = Quaternion.LookRotation(inputRotation);
                transform.position = new Vector3(transform.position.x,transform.position.y,0);
 


на мышь оно реагирует но куб безбожно во всех плоскостях колбасит ... вообщем не получилось.
потом почитал тут http://unity3d.ru/distribution/viewtopic.php?f=18&t=11729 .. про поворот в точку проекции курсора на
плоскость, все равно не получается..

сейчас есть что то вроде
Синтаксис:
Используется csharp
 
                mousePos=Input.mousePosition;
                mousePr = new Vector3 (mousePos.x, mousePos.y,0);
               
                transform.LookAt(mousePr);
 


вроде как кубик перестало типать, но и поворачивается он не так.
submerset
UNец
 
Сообщения: 41
Зарегистрирован: 16 июл 2012, 15:24

Re: Не получается поворот персонажа за курсором мыши. 2D

Сообщение AndreyMust19 06 ноя 2012, 14:30

При щелчке мыши определяешь точку пространства.
Проецируешь вектор этой точки на ось по которой двигаются объекты в игре влево и вправо (Vector3.forward или Vector3.right).
Сравниваешь - если направление движения объекта и направление спроецированного вектора НЕ совпадают, то инвертируешь направление движения объекта (поворачиваешь на 180 градусов по оси Vector.up).
Если объект еще не идет - приказываешь ему идти.

Если объект должен смотреть в XY куда вы тыкните мышью, то проецируйте точку пространства отдельно на Vector.right и Vector3.up, складываете их (есть еще отдельная функция, к-я может сделать тоже самое), находите функцией LookRotation нужную ориентацию для этого направления и функцией Lerp плавно меняете ориентацию объекта с текущей на нужную. Двигать объект лучше только в прямом направлении (Vector3.forward), чтобы он менял траекторию движения вместе с поворотом.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Не получается поворот персонажа за курсором мыши. 2D

Сообщение submerset 06 ноя 2012, 15:14

.. я наверно не ясно объяснил, или просто Вас не понял...
Управление "кубом" должно быть как в crimsonland... то есть камера смотрит вниз по оси( в моем случаи ) Z. а куб перемещается
по осям Х,У.. теоретически я понимаю что надо сделать, но не выходит. Щас пробую разобраться с углами Эйлера...
Спасибо.
submerset
UNец
 
Сообщения: 41
Зарегистрирован: 16 июл 2012, 15:24

Re: Не получается поворот персонажа за курсором мыши. 2D

Сообщение submerset 06 ноя 2012, 18:08

А, я вас все таки понял, спасибо
submerset
UNец
 
Сообщения: 41
Зарегистрирован: 16 июл 2012, 15:24


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31