Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Почему Camera.ScreenPointToRay работает криво и не точно?
@ikeky

Почему игрок не может повернуться к курсору в 3d top-down игре?

Я делаю 3д игру, и как по мне эта 3дшность и является основной проблемой не точности поворота игрока в сторону курсора.
Вот код игрока:
void Update(){
   RaycastHit hit;
   Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
   if (Physics.Raycast(ray, out hit)){
      Vector3 pointToLook = hit.point;
      transform.LookAt(2 * transform.position - pointToLook);
   }
}

Если что я использую Camera.main.ScreenPointToRay и transform.LookAt, может быть они не являются оптимальными в данной задаче.
видео с примером ошибки
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    SDP-030_PRG Продвинутая разработка в Microsoft .NET
    1 неделя
    Далее
  • Ulearn.me
    Проектирование на языке C#
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
@ikeky Автор вопроса
Мне нашли решение в зарубежном сайте stackoverflow, где прекрасно описали ошибку, подробнее об этой проблеме можете найти здесь
Вот решение:
Debug.Log(Input.mousePosition);
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit)){
            Vector3 pointToLook = hit.point;
            Vector3 projection = Vector3.ProjectOnPlane(transform.position - pointToLook, Vector3.up);
            transform.forward = projection;
        }
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы