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

Как пофиксить баг с MousePosition?

public void OnMouseDrag()
    {
        transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    }


Вот такой код, для перемещения объекта курсором, но, объект автоматический перемещается к камере, ну то есть по Z координате, и становиться невидимый
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
@mgvark
проблема в том, что ваша мышь на экране - это 2D, а мир - 3D.

ваша мышь может перемещаться вверх и вниз, влево и вправо по экрану, но она никогда не может «входить» или «выходить» из экрана, ее глубина равна нулю.

Таким образом, при преобразовании с мыши в 3D вы должны сами определить глубину.

в этом случае обычно вы просто копируете существующую ось Z, чтобы она была

transform.position = new vector3(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y, transform.position.z);
это не идеально, вы должны создать один экземпляр vector3 и продолжать переназначать его вместо создания новых переменных каждый раз, возможно, и, возможно, переменную Camera.main.ScreenToWorldPoint(Input.mousePosition) только для удобства чтения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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