Для погружения в виртуальный мир требуется выполнить несколько простых шагов.
1. Создаем пустой проэктъ.
Для начала работы с VR в юнити, я использую стандартный пустой 3D-проект без стартовых ассетов. Запускаем Unity Hub, выбираем в представленном списке 3D Core, задаем название проекта, папку с расположением и жмем Create project;
2. Базовая настройка.
В открывшемся окне программы жмем Edit > Project Settings... Выбираем вкладку XR Plug-in Management и устанавливаем его нажав на единственную кнопку.
Ставим галочку у Open XR во вкладке "ПК", соглашаясь на смену системы ввода и перезапуск юнити. Во вкладке "Андройд" ставим галочку у Oculus.
Затем делаем двойное нажатие на желтый треугольник возле Open XR, откроется предупреждение что нет ни одного профиля для VR-контроллеров. Нажимаем Edit.
В открывшейся подвкладке устанавливаем Render Mode на Multi Pass и нажатием на плюсик, добавляем используемые профили контроллеров.
Самые распространенные это контроллеры Oculus Touch, HTC Vive и Valve Index.
После добавления профилей контроллеров, закрываем Project Settings
3. Импорт XR Interaction Toolkit
В основном окне Unity находим Window > Package Manager.
В открывшемся Package Manager, жмем плюсик, выбираем Add package from git URL... и вводим "com.unity.xr.interaction.toolkit" и жмем add.
В данном примере мы создаем пустой проект с нуля, поэтому жмем "I Made a Backup, Go Ahead!"
Во вкладке с только что импортированным пакетом, раскрываем Samples и импортируем Starter Assets, там находятся несколько скриптов которые сэкономят массу времени в будущем.
3. Настройка XR Interaction Toolkit
В основном окне Unity находим папку в которую был импортирован Starter Assets в предыдущем шаге. Здесь нас ожидают пресеты на плавное передвижение, поворот и т.п.
Добавляем все эти пресеты в Preset Manager. Ничего страшного, если у вас меньше пресетов чем у меня, юнити постоянною обновляют XR Toolkit/
Затем в меню юнити идем Edit > Project Settings... Preset Manager и добавляем фильтры к контроллерам.
4. Собираем сцену
Для добавления объектов на сцену, нажимаем правой кнопкой мыши по пустой области в окне Hierarchy.
- Добавляем Terrain
- Добавляем игрока, XR > XR Origin (VR)
В окне Hierarchy выбираем Main camera(если есть) и удаляем ее, затем выделяем Terrain и в окне Inspector устанавливаем Transform Position на X -500, Y 0, Z -500. Так игрок окажется в центре террейна, который представляет собой землю. Следом выбираем XR Origin и ставим Transform Position на 0 во всех ячейках кроме Scale.
Затем выбираем XR Interaction Manager и в окне Inspector нажимаем Add Component и добавляем Input Action Manager. В Input Action Manager добавляем Action Assets.
На данном этапе уже можно запустить игру и осмотреться внутри юнити, помахать руками, но сделать пока ничего не получится.
5. Добавляем возможностей
- Передвижение
Нажимаем на пустое поле в окне Hierarchy правой кнопкой мыши, XR > Locomotion System (Action-based). Выделяем Locomotion System и в окне Inspector снимаем галочки с Teleportation Provider и Stap Turn Provider. Первый отвечает за телепортацию в определенной зоне или в определенное место, а второй отвечает за поворот персонажа на определенный градус. Оба я обычно не использую.
Вместо них добавляем Continuous Move Provider (Action-based) и Continuous Turn Provider (Action-based).
- Взятие объектов в руки
Добавляем на сцену куб сбрасываем позицию куба на 0 по всем осям и добавляем кубу компонент XR Grab Interactable.