Блог онлайн школы Пиксель

Как сделать в Unity перемещение объекта мышью (3D-объекты)

Привет, друзья! Школа "Пиксель" продолжает выпускать бесплатные уроки Unity и программирования на C# (Си Шарп). На этот раз мы создадим возможность перемещения 3D-объекта мышкой. В процессе мы разберем два способа и создадим 2 скрипта: MousePosition и MouseRotate.

Для начала создаем куб и располагаем камеру так, чтобы в окне Game был виден куб. Куб сливается с фоном, поэтому лучше создать ему материал.


Далее добавляем физику на куб.


Создаем скрипт, называем его MousePosition.


Всего у нас будет два скрипта. Одна реализация простая, вторая — сложнее, но точнее.

Скрипт MousePosition


Сначала добавляем переменную типа float — скорость перемещения.

Далее пишем FixedUpdate. Чем он отличается от обычного Update? FixedUpdate не смотрит на вычислительную мощность вашего компьютера и будет выполнять свои функции вне зависимости от способностей ПК. Все физические расчеты движка и обновление происходит сразу после FixedUpdate().

Затем у нас идет условный оператор if, мы проверяем, зажали ли мы левую кнопку мыши.
Vector3 mouse — сюда мы записываем координаты мыши (где было зажатие мыши и куда она ведет).

Input.GetAxis(“Mouse X”) — движение мыши в горизонтальной плоскости.
transform.Translate — перемещение в пространстве.


Сохраняем скрипт, перемещаем его на куб. В компоненте Rigidbody ставим ограничение на поворот объекта.


Запускаем и проверяем.

Скрипт MouseRotate


Camera.main.WorldToScreenPoint — преобразует позицию из мирового пространства в экранное пространство.
Input.mousePosition.x — записывает координаты мыши.
pointScreen.z — так как мышь перемещается в плоскости, отловить координаты по Z не получится. Для этого мы отдельно записали позицию мирового пространства в pointScreen (строка 12).


Удаляем прошлый скрипт с куба и перемещаем на него скрипт MouseRotate. Запускаем его и проверяем.

На этом наш урок по созданию скриптов для перемещения объектов мышью в Unity подошел к концу. Если вы хотите продолжить изучение Unity, приходите в школу "Пиксель" на продвинутый курс по разработке игр на Unity 3D и программированию на С#. А также смотрите наши бесплатные видеоуроки на YouTube.

2022-03-05 14:03 Бесплатные видеоуроки Unity для детей