Упражнение. Добавление взаимодействия руки с ObjectManipulator
Скрипт ObjectManipulator поддерживает модальность прямой манипуляции входной модели рук и контроллеров движения. При присоединении скрипта к объекту пользователь может перемещать, масштабировать или поворачивать объект руками. В этом упражнении вам предстоит создать два куба, присоединить к ним необходимые сценарии, а затем подвигать их по пространству.
Добавление и настройка первого куба
В строке меню выберите GameObject>3D Object>Cube (Игровой объект > 3D-объект > Куб).
Размер куба по умолчанию составляет один кубический метр, который слишком велик для наших целей. Мы масштабируем размер до 20 кубических сантиметров.
Выберите куб, а затем в инспекторе измените значения масштабирования куба в разделе "Преобразование" следующим образом:
X = 0.2, Y = 0.2, Z = 0.2
Куб был помещен на сцену в положении по умолчанию (0, 0, 0). Это означает, что куб находится в той же позиции, что и гарнитура пользователя, и пользователь не сможет увидеть куб, пока не отойдет назад. Изменим положение куба, чтобы он находился в лучшем месте для просмотра.
В инспекторе измените значения позиции куба в разделе "Преобразование" следующим образом:
X = -0,2, Y = 1.6, Z = 0,5
Мы хотим видеть три стороны Куба, поэтому мы изменим параметры поворота.
В инспекторе измените значения поворота куба в значениях раздела преобразования следующим образом:
X = 9, Y = 14, Z = 0
Совет
Чтобы увеличить масштаб куба, выберите его, убедитесь, что курсор наведите указатель мыши на окно сцены и нажмите клавишу F . Таким образом можно приблизить любой объект.
Добавление сценариев к кубу
Чтобы объект можно было "схватить" и манипулировать им движениями рук, к нему необходимо присоединить три компонента.
- Компонент Коллидера (вам не нужно ничего делать здесь; Куб Unity уже подключен к Box Collider по умолчанию)
- Компонент Манипулятора объектов (скрипт)
- Компонент Диспетчера ограничений (скрипт)
Если куб по-прежнему выбран, в окне инспектора нажмите кнопку "Добавить компонент", а затем найдите и выберите скрипт манипулятора объектов.
Скрипт манипулятора объектов делает объект перемещаемым, масштабируемым и поворотным с помощью одной или двух рук. При добавлении сценария Object Manipulator автоматически добавляется сценарий Constraint Manager (Диспетчер ограничений), так как Object Manipulator зависит от него.
Обновление материала куба
В целях повышения производительности рекомендуется использовать материалы MRTK вместо материалов Unity по умолчанию.
- При выборе куба найдите и разверните раздел "Материалы " в компоненте Отрисовщика сетки.
- Замените материал по умолчанию материалом MRTK_Standard_White, расположенным в разделе "Стандартные>ресурсы MRTK". Это можно сделать, перетаскивая материал непосредственно в поле "Элемент " в разделе "Материалы "
Добавление второго куба
В иерархии щелкните правой кнопкой мыши куб и выберите "Дублировать". Повторяющийся куб отображается с именем Куба (1).
Щелкните правой кнопкой мыши исходный куб, выберите "Переименовать" и назовите куб рядом с кубом.
Щелкните правой кнопкой мыши повторяющийся куб, выберите "Переименовать" и назовите куб Far Cube.
В данный момент сцена выглядит так, как будто на ней только один куб. Это происходит потому, что оба куба находятся в точности на одном месте. Давайте изменим положение и поворот куба Far Cube.
С выбранным кубом Far Cube измените его значения в компоненте Transform (Преобразование) следующим образом:
Позиция: X = 0,6, Y = 1.6, Z = 1.1
Поворот: X = 27, Y = 0, Z = 0
Теперь камера должна увидеть близкий куб слева и Far Cube немного дальше справа. Чтобы подтвердить это, в иерархии выберите main Камера (в разделе MRTK XR Rig> Камера Offset), а затем просмотрите окно Main Камера в окне сцены.
Совет
Если вы хотите, чтобы представление в окне сцены было больше похоже на то, что видит камера, прокрутите окно сцены. Возможно, вам придется задать для камеры флажки "Очистить флаги" в Skybox, если это не по умолчанию.
Захват и перемещение кубов в режиме воспроизведения
Нажмите кнопку "Воспроизвести ". Когда начнется воспроизведение проекта, представление переключится в окно игры.
Примечание.
Перед воспроизведением убедитесь, что в project Параметры> MRTK3 установлен допустимый набор профилей.
Нажмите кнопку с тремя точками над правым верхним углом окна игры и нажмите кнопку "Развернуть".
Нажмите и удерживайте пробел, чтобы имитированная правая рука отображалась в представлении.
Переместите имитированную руку ближе к кубу "Около" до тех пор, пока она не будет касаться куба на стороне или внизу.
Нажмите левую кнопку мыши (это делает руку "захватить" куб), а затем перетащите куб вокруг сцены.
Чтобы взять и переместить куб Far Cube, мы будем использовать дальний указатель, прикрепленный к моделируемой руке.
Если вам нужно, нажмите и удерживайте пробел снова, чтобы сделать имитированную правую руку. Обратите внимание на дальний указатель, который выходит из конца указательного пальца руки.
Переместите руку ближе к кубу Far Cube, пока не увидите кончик указателя на кубе. Может потребоваться переместить руку в круговое движение несколько раз, чтобы сделать кончик указателя на кубе.
Нажмите левую кнопку мыши (это делает руку близкой, принимая то, что мы называем жестом сцепление), а затем перетащите куб по сцене.