@ChelSiharpniy

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

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


Вот такой код, для перемещения объекта курсором, но, объект автоматический перемещается к камере, ну то есть по Z координате, и становиться невидимый
  • Вопрос задан
  • 191 просмотр
Решения вопроса 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) только для удобства чтения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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