@Delor1th

Как сделать следование объекта за курсором мыши?

Надо сделать следование объектом(игроком) за курсором мыши. Сделал код для вращения объекта за курсором:
private void LookAtMouse()
    {
        var direction = Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position); // Нахождение катетов для расчёта тангенса, а в последствии и количества градусов угла. 
        var angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg; // Нахождение тангенса угла и перевод его в градусы.
        transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward); // Вращение объекта на полученное количество градусов.
    }

Но как теперь сделать так, чтобы объект двигался "вперёд" за курсором?
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
DanceM
@DanceM Куратор тега Unity Game Engine
Кто хочет -ищет способ, кто не хочет -ищет причину
Я делаю иначе, чтобы избежать лишних рассчетов:
- создаете вспомогательный объект, что смотрит на курсор с помощью Transform.LookAt;
- далее двигаете основной объект в направлении КУРСОРА с помощью Vector3.Lerp или Vector3.SmoothDamp;
- для поворота на угол ВСПОМОГАТЕЛЬНОГО объекта можно примерить Quanternion.Lerp или Quanternion.Slerp;
- ну и ограничиваете поворот по каким-либо их осей, если нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы