Скрипт слежения врага за игроком - Форум Игроделов
Вс, 09 Фев 2025, 18:34 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Скрипт слежения врага за игроком
igoryanДата: Ср, 14 Мар 2012, 01:56 | Сообщение # 1
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Делаю первые шаги в изучении C# скриптинга под Unity.
Задача проста, сделать скрипт слежения модели за передвижением игрока.
Используя Quaternion модель поворачивается по 3 осям.
Как сделать поворот только по оси Y.
ps не стебайтесь, если это элементарно плз sad
 
СообщениеДелаю первые шаги в изучении C# скриптинга под Unity.
Задача проста, сделать скрипт слежения модели за передвижением игрока.
Используя Quaternion модель поворачивается по 3 осям.
Как сделать поворот только по оси Y.
ps не стебайтесь, если это элементарно плз sad

Автор - igoryan
Дата добавления - 14 Мар 2012 в 01:56
ЛевшаДата: Ср, 14 Мар 2012, 02:05 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (igoryan)
Как сделать поворот только по оси Y.

Следующей строкой после Quaternion пропиши:
Code
transform.eulerAngles.x = 0; transform.eulerAngles.z = 0;

Если обьект дочерний то:
Code
transform.localEulerAngles.x = 0; transform.localEulerAngles.z = 0;

Это заморозит вращение по остальным осям


X.cor.R (Prologue)
 
Сообщение
Quote (igoryan)
Как сделать поворот только по оси Y.

Следующей строкой после Quaternion пропиши:
Code
transform.eulerAngles.x = 0; transform.eulerAngles.z = 0;

Если обьект дочерний то:
Code
transform.localEulerAngles.x = 0; transform.localEulerAngles.z = 0;

Это заморозит вращение по остальным осям

Автор - Левша
Дата добавления - 14 Мар 2012 в 02:05
igoryanДата: Ср, 14 Мар 2012, 23:22 | Сообщение # 3
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Не работает... выдает ошибку.
Чего не так?
 
СообщениеНе работает... выдает ошибку.
Чего не так?

Автор - igoryan
Дата добавления - 14 Мар 2012 в 23:22
ЛевшаДата: Чт, 15 Мар 2012, 00:56 | Сообщение # 4
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (igoryan)
Чего не так?

Бес понятия... код рабочий. Впиши его правильно.
Привожу участок аналогичного кода из моего рабочего скрипта:
Code

transform.rotation = Quaternion.Slerp(kamera.transform.rotation, targetRotation, rotSpeed * (movSpeed / 3 + 3) * Time.deltaTime);
transform.eulerAngles.x = 0; transform.eulerAngles.z = 0;

Итог - вращение строго по оси Y.


X.cor.R (Prologue)
 
Сообщение
Quote (igoryan)
Чего не так?

Бес понятия... код рабочий. Впиши его правильно.
Привожу участок аналогичного кода из моего рабочего скрипта:
Code

transform.rotation = Quaternion.Slerp(kamera.transform.rotation, targetRotation, rotSpeed * (movSpeed / 3 + 3) * Time.deltaTime);
transform.eulerAngles.x = 0; transform.eulerAngles.z = 0;

Итог - вращение строго по оси Y.

Автор - Левша
Дата добавления - 15 Мар 2012 в 00:56
igoryanДата: Сб, 17 Мар 2012, 12:50 | Сообщение # 5
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Твой пример почему то не работает, а вот так заработало
Code
yRotation = transform.eulerAngles.y;
    transform.eulerAngles = new Vector3(0, yRotation, 0);

Вопрос решен.


Сообщение отредактировал igoryan - Сб, 17 Мар 2012, 12:51
 
СообщениеТвой пример почему то не работает, а вот так заработало
Code
yRotation = transform.eulerAngles.y;
    transform.eulerAngles = new Vector3(0, yRotation, 0);

Вопрос решен.

Автор - igoryan
Дата добавления - 17 Мар 2012 в 12:50
ЛевшаДата: Сб, 17 Мар 2012, 14:48 | Сообщение # 6
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (igoryan)
transform.eulerAngles = new Vector3(0, yRotation, 0);

Quote (Левша)
transform.eulerAngles.x = 0; transform.eulerAngles.z = 0;

Это одно и то же. biggrin


X.cor.R (Prologue)
 
Сообщение
Quote (igoryan)
transform.eulerAngles = new Vector3(0, yRotation, 0);

Quote (Левша)
transform.eulerAngles.x = 0; transform.eulerAngles.z = 0;

Это одно и то же. biggrin

Автор - Левша
Дата добавления - 17 Мар 2012 в 14:48
seamanДата: Сб, 17 Мар 2012, 15:44 | Сообщение # 7
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
В C# не одно и тоже.
 
СообщениеВ C# не одно и тоже.

Автор - seaman
Дата добавления - 17 Мар 2012 в 15:44
igoryanДата: Сб, 17 Мар 2012, 23:57 | Сообщение # 8
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
В том то и дело, что у меня первый вариант работает, а второй нет.
 
СообщениеВ том то и дело, что у меня первый вариант работает, а второй нет.

Автор - igoryan
Дата добавления - 17 Мар 2012 в 23:57
commandobyДата: Вс, 01 Апр 2012, 15:58 | Сообщение # 9
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Quote (igoryan)
Как сделать поворот только по оси Y.

Можно и без скрипта заблокировать вращение объекта по осям: Rigidbody/Constraints . Мне это один раз пригодилось.


Блог.

Сообщение отредактировал commandoby - Вс, 01 Апр 2012, 16:00
 
Сообщение
Quote (igoryan)
Как сделать поворот только по оси Y.

Можно и без скрипта заблокировать вращение объекта по осям: Rigidbody/Constraints . Мне это один раз пригодилось.

Автор - commandoby
Дата добавления - 01 Апр 2012 в 15:58
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025