Нужна помощь с вращением.

Программирование на Юнити.

Нужна помощь с вращением.

Сообщение croon 09 июл 2010, 09:18

Делаю систему типа 3D шутера. Необходимо сделать чтобы при нажатии на определенную кнопку (например F1) запоминалась текущая позиция, затем когда перс отошел куда либо при нажатии на другую кнопку (например F2) перс возвращался в запомненное положение. С положением разобрался все работает нормально, перс перемещается в нужную точку, а вот со вращение проблемы. Перс смотрит в ту сторону куда смотрел перед тем как его переместили. Пробовал использовать transform.localRotation но эта штука работает нормально только в если ее поместить в void Update (), т.е. он на один фрейм поворачивается в нужную сторону, а при следующем фрейме опять поворачивается тута куда смотрел до перемещения. Его возвращает стандартный скрипт из модуля MouseLook. Я так понимаю надо как-то задать Input.GetAxis("Mouse X") тому что было при запоминании позиции????
Не совсем понятно почему функция transform.position если ее один раз вызвать скажем так принимает и запоминает значения а transform.localRotation нет???
Аватара пользователя
croon
UNец
 
Сообщения: 8
Зарегистрирован: 13 апр 2010, 21:44

Re: Нужна помощь с вращением.

Сообщение Zaicheg 09 июл 2010, 10:12

croon писал(а):Не совсем понятно почему функция transform.position если ее один раз вызвать скажем так принимает и запоминает значения а transform.localRotation нет???

Это не функция, а переменная. И она не запоминает поворот. Остальная часть поста плохо читается.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Нужна помощь с вращением.

Сообщение Guzyano 09 июл 2010, 14:32

А оси сбрасывать пробовал???
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Нужна помощь с вращением.

Сообщение croon 09 июл 2010, 14:34

Попробую еще раз объяснить:
По трехмерному миру бегает персонаж. Когда персонаж находится в некоторой точке А, наживается кнопка на клавиатуре «F1», что бы запомнить текущую позицию. Потом персонаж дальше бегает по карте, и например, находясь в точке Б нажимает кнопку «F2», что бы переместится в сохраненную позицию, т.е. в точку А.

Как я это реализую:
Когда нажимается клавиша «F1», я запоминаю вектор позиции (v = transform.position) и текущее вращение (q = transform.localRotation) в глобальной переменной.
Затем, когда нажимается клавиша «F2» я присваиваю transform.position = v; и transform.localRotation = q;
В результате позиция переприсваивается нормально (игрок перемещается в точку А), но при этом значение вращения присваивается только на один кадр, следующим кадром значение фращения становится таким, каким было до перемещения (т.е. в положении Б)


Мне непонятно как «зафиксировать» поворот??
Аватара пользователя
croon
UNец
 
Сообщения: 8
Зарегистрирован: 13 апр 2010, 21:44

Re: Нужна помощь с вращением.

Сообщение Guzyano 09 июл 2010, 14:42

а Input.ResetAxis ты делаешь ???
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Нужна помощь с вращением.

Сообщение croon 10 июл 2010, 15:18

Input.ResetInputAxes пробовал, никаково эфекта
Аватара пользователя
croon
UNец
 
Сообщения: 8
Зарегистрирован: 13 апр 2010, 21:44


Вернуться в Скрипты

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

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