Воскресенье, 28 Апреля 2024, 00:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Ограничение вращения
Ограничение вращения
BassPiraT92Дата: Среда, 05 Апреля 2023, 16:58 | Сообщение # 1
участник
Сейчас нет на сайте
Подскажите, как ограничить вращение объекта от -30 до 60 по оси?
Код
void Update()

    {
        transform.Rotate(new Vector3(-Input.GetAxisRaw("Mouse Y"), 0));
    }
falcowareДата: Среда, 05 Апреля 2023, 17:11 | Сообщение # 2
старожил
Сейчас нет на сайте
if(dot_product(AxizZ, Vector) < acos(60) && dot_product(AxizZ, Vector) > -acos(30))
BassPiraT92Дата: Среда, 05 Апреля 2023, 17:20 | Сообщение # 3
участник
Сейчас нет на сайте
Цитата falcoware ()
if(dot_product(AxizZ, Vector) < acos(60) && dot_product(AxizZ, Vector) > -acos(30))

Можно поподробней, хочу вникнуть =)
falcowareДата: Среда, 05 Апреля 2023, 17:44 | Сообщение # 4
старожил
Сейчас нет на сайте
BassPiraT92, https://en.wikipedia.org/wiki/Dot_product

Произведение длин двух векторов на косинус угла между ними.
Если сделаешь еденичные вектора по длине, то есть нормируешь, то можешь найти угол между ними.
И если угол больше значения то отбрасывать.
drcrackДата: Четверг, 06 Апреля 2023, 01:16 | Сообщение # 5
старожил
Сейчас нет на сайте
Код

var rotation = transform.eulerAngles;
rotation.x = Mathf.Clamp(rotation.x - Input.GetAxisRaw("Mouse Y"), -30, 60);
transform.eulerAngles = rotation;


Сообщение отредактировал drcrack - Четверг, 06 Апреля 2023, 01:17
BassPiraT92Дата: Суббота, 15 Апреля 2023, 06:59 | Сообщение # 6
участник
Сейчас нет на сайте
drcrack, благодарю!!! Очень понятный и адекватный код :D Спасиб!!!!
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Ограничение вращения
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг