Проблема при назначении Input.mousePosition для transform.position в Unity2D - PullRequest
1 голос
/ 12 мая 2019

Я следовал учебникам по инвентарю для Unity от Kryzarel и столкнулся со странной проблемой, которая, я думаю, может быть связана с чем-то не связанным.

Тонны поиска в Google не дали никаких результатов.Это похоже на неясную проблему.

https://www.youtube.com/channel/UCOM0GGMEcu-gyf4F1mT7A8Q/videos для ссылки на канал.

Но проблема, с которой я сталкиваюсь, заключается в следующем:

draggableItem.transform.position = Input.mousePosition;

Таким образом, элемент Dragable - это ссылка на компонент Image в GameObject.Я регистрирую Input.mousePosition перед рукой, и значения имеют смысл (в пределах сотен, например (563,262,0)).Тем не менее, позиция преобразования не находится рядом с записанным числом.Например, я вижу (48660,31, 23917,95, -7889,887).Нет логики между оператором debug.log, предоставляющим Input.mousePosition, и кодом, присваивающим его преобразованию.Кто-нибудь имеет представление о том, что я, возможно, настроил неправильно или мог ошибаться?

Я бы ожидал, что позиция будет (563,262,0), а не смешным числом, которым она в конечном итоге окажется.Я пробовал localPosition вместо transform.position, и это вроде работает.Так как это примерно на 500 или 700 к верхнему правому углу того, что я двигаю относительно мыши, я хочу избежать хакерских решений, таких как вычитание некоторого магического числа, если это возможно.

Редактировать: Дальнейший фондругие щелчки мыши и связанные с мышью вещи, кажется, работают правильно.Это орфографическая камера или по умолчанию для проекта unity2D

Решение: в моем случае я смог установить ее в соответствии с принятым ответом, затем мне пришлось изменить position, а не localPosition, а также пришлосьобнулить значение z мировой точки.

1 Ответ

0 голосов
/ 12 мая 2019

Положение мыши относительно вашего экрана, а не вашего мира. Вам необходимо преобразовать пространство экрана в мировое пространство с помощью:

 var pos = Camera.ScreenToWorldPoint(Input.mousePosition);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...