Упражнение. Добавление взаимодействия рук с ObjectManipulator
Скрипт ObjectManipulator поддерживает прямую манипуляцию модальность модели ввода с использованием рук и контроллеров движения. При присоединении скрипта к объекту пользователь может перемещать, масштабировать или поворачивать объект руками. В этом упражнении вы создадите два куба, прикрепите к ним необходимые скрипты, а затем переместите кубы вокруг.
Добавление и настройка первого куба
В строке меню выберите GameObject>трехмерный объект>куб.
Размер куба по умолчанию составляет один кубический метр, который слишком велик для наших целей. Мы масштабируем размер до 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 по умолчанию)
- Компонент Манипулятора объектов (скрипт)
- Компонент Диспетчера ограничений (скрипт)
При выборе куба в окне инспектора нажмите кнопку Добавить компонент, а затем найдите и выберите скрипт объектного манипулятора.
Скрипт манипулятора объектов делает объект перемещаемым, масштабируемым и поворотным с помощью одной или двух рук. При добавлении скрипта "Манипулятор объектов" скрипт диспетчера ограничений автоматически добавляется, так как скрипт манипулятора объектов зависит от него.
Обновление материала куба
В целях повышения производительности рекомендуется использовать материалы MRTK вместо материалов Unity по умолчанию.
- При выборе куба найдите и разверните раздел Материалы на компоненте Отрисовщика сетки.
- Замените материал по умолчанию материалом MRTK_Standard_White, расположенным под MRTK Standard Assets>Материалы. Это можно сделать, перетащив материал непосредственно в поле элемента в разделе материалов
Добавление второго куба
В иерархиищелкните правой кнопкой мыши на кубе и выберите Дублировать. Дублированный куб отображается с именем Cube (1).
Щелкните правой кнопкой мыши исходный куб, выберите Переименоватьи назовите куб рядом с кубом.
Щелкните правой кнопкой мыши повторяющийся куб, выберите Переименовать, а затем назовите куб Far Cube.
На данный момент похоже, что в представлении Сцена есть только один куб. Это связано с тем, что Near Cube и Far Cube находятся в одном и том же месте. Изменим положение и поворот Far Cube.
Если параметр Far Cube по-прежнему выбран, измените его значения в компоненте преобразования следующим образом:
положение: X = 0,6, Y = 1.6, Z = 1.1
вращение: X = 27, Y = 0, Z = 0
Теперь камера должна увидеть близкий куб слева и Far Cube немного дальше справа. Чтобы подтвердить это, в иерархии выберите Основная камера (в разделе MRTK XR Rig>Смещение камеры), а затем посмотрите окно Основная камера в окне Сцена.
Совет
Если вы хотите, чтобы изображение в окне Сцена выглядело более похожим на то, что видит камера, прокрутите окно в окне Сцена. Возможно, вам придется установить флагов очистки на Skybox, если это не установлено по умолчанию.
Захватите и переместите кубы в игровом режиме
Нажмите кнопку Воспроизвести. Когда проект запускается, вид переключается на окно игры.
Заметка
Перед воспроизведением убедитесь, что под Параметры Проекта>MRTK3установлен действительный профиль .
Нажмите кнопку трехточие над правым верхним углом окна игры, а затем выберите "Развернуть".
Нажмите и удерживайте пробел, чтобы появилось изображение имитированной правой руки.
Переместите имитированную руку ближе к ближнему кубу до тех пор, пока она не будет касаться куба сбоку или снизу.
Нажмите левую кнопку мыши, чтобы рука захватила куб, и перетащите его по сцене.
Для захвата и перемещения Far Cube мы будем использовать дальний указатель, подключенный к имитированной руке.
Если нужно, снова нажмите и удерживайте пробел, чтобы появилась имитированная правая рука. Обратите внимание на дальний указатель, который расширяется от конца индексного пальца руки.
Переместите руку ближе к Far Cube, пока не увидите кончик указателя на кубе. Может потребоваться двигать рукой круговыми движениями несколько раз, чтобы кончик указателя появился на кубе.
Нажмите левую кнопку мыши (это закрывает руку, принимая «жест щипка»), а затем перетащите куб по сцене.