Задать вопрос
@ne_Sci_fi

Как ограничить вращение объекта в Unity?

У меня есть 2d персонаж, на котором весит объект gun, gun направлен в сторону мыши. Мне нужно ограничить вращение gun.
Код к gun:
void Update ()
{
var mousePosition = Input.mousePosition;
mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);
var angle = Vector2.Angle(Vector2.right, mousePosition - transform.position);
transform.eulerAngles = new Vector3(0f, 0f, transform.position.y < mousePosition.y ? angle : -angle);
}
  • Вопрос задан
  • 2385 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • Учебный центр IBS
    DEV-001_NET Шаблоны проектирования GoF. Редакция для .NET
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 2
@keksmr
Unity разработчик
mousePosition.y = Mathf.Clamp(mousePosition.y, min, max);
Ответ написан
@ne_Sci_fi Автор вопроса
я решил проблемку.
Код:
void Update ()
{
var mousePosition = Input.mousePosition;
mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);
mousePosition.y = Mathf.Clamp(mousePosition.y, zMiN, zMAX);
var angle = Vector2.Angle(Vector2.right, mousePosition - transform.position);
transform.eulerAngles = new Vector3(0f, 0f, Mathf.Clamp(transform.position.y < mousePosition.y angle : -angle, zMiN, zMAX));

}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы