Приветствую вас на канале посвященном разработке VR приложений под устройства Pico.
Ссылка на чат
У самого автора есть Pico 4, а потому вещаю пока что от своего опыта, но в будущем, если будут иные участники, информация будет обновляться и касательно иных девайсов семейства Pico и не только.
Ссылка на чат
У самого автора есть Pico 4, а потому вещаю пока что от своего опыта, но в будущем, если будут иные участники, информация будет обновляться и касательно иных девайсов семейства Pico и не только.
👍3
1) Я хочу делать приложения под Pico, с чего начать?
Сайт с SDK (инструментариями под разработку шлема) Pico. Платформы, образно говоря, три: Unity, Unreal Engine, и Native (т.е. голый SDK, который интегрируется уже в различные инструментарии). Важно сказать: Если вы хотите делать VR игры, вы должны уметь делать 3Д игры, т.е. уметь разрабатывать без VR. В начале я пока буду говорить про Unity, ибо имею дело с ним.
Но важно пометить что если вы делаете не VR приложение, то никто вам не мешает писать приложение в Android Studio. Шлем Pico 4 на платформе Android, и спокойно принимает обычные android приложения.
2) Разная версия SDK рассчитана под определенные версии прошивки.
На примере Unity. В логах обновления указаны под какие версии прошивок те или иные SDK. К сожалению сайт предлагает только последние версии, из-за чего если вы сидите на какой-то конкретно старой прошивке, могут возникнуть трудности. Но переживать не стоит, есть решения, о них позже.
Сайт с SDK (инструментариями под разработку шлема) Pico. Платформы, образно говоря, три: Unity, Unreal Engine, и Native (т.е. голый SDK, который интегрируется уже в различные инструментарии). Важно сказать: Если вы хотите делать VR игры, вы должны уметь делать 3Д игры, т.е. уметь разрабатывать без VR. В начале я пока буду говорить про Unity, ибо имею дело с ним.
Но важно пометить что если вы делаете не VR приложение, то никто вам не мешает писать приложение в Android Studio. Шлем Pico 4 на платформе Android, и спокойно принимает обычные android приложения.
2) Разная версия SDK рассчитана под определенные версии прошивки.
На примере Unity. В логах обновления указаны под какие версии прошивок те или иные SDK. К сожалению сайт предлагает только последние версии, из-за чего если вы сидите на какой-то конкретно старой прошивке, могут возникнуть трудности. Но переживать не стоит, есть решения, о них позже.
👍3
Архив Pico Unity SDK
2.1.4 (Для ПО 5.4 и выше)
2.1.5 (Для ПО 5.5 и выше)
2.2.0 (Для ПО 5.6 и выше)
2.3.0 (Для ПО 5.7 и выше)
OpenXR SDK Preview (Для ПО 5.7 и выше)
OpenXR SDK 1.2 (Для ПО 5.8 и выше)
2.4.0 (Для ПО 5.8 и выше)
SDK добавляется через Package Manager (Не забудьте распаковать куда-нибудь).
Базовые настройки для проекта следующие:
- в качестве примера можно взять стандартный VR Template, который предлагается при создании проекта.
- после того как SDK интегрирован, важно внести правки в Project Settings -> Player -> Android:
1) Pico работает только с Vulkan API, поэтому во вкладке Other Settings отключаем Auto Graphics API и оставляем там только Vulkan
2) ниже не забываем задать название android-пакету (com.xx.yy)
3) Minimum API Level = 29 (Android 10)
Начиная с 2.1.5 можно задать свое лого заставку при запуске.
Далее, не забываем в Project Settings -> XR Plug-in Management во вкладке Android проставить в качестве XR провайдера PICO (и галочку Initialize XR on Startup тоже, если не стояла)
2.1.4 (Для ПО 5.4 и выше)
2.1.5 (Для ПО 5.5 и выше)
2.2.0 (Для ПО 5.6 и выше)
2.3.0 (Для ПО 5.7 и выше)
OpenXR SDK Preview (Для ПО 5.7 и выше)
OpenXR SDK 1.2 (Для ПО 5.8 и выше)
2.4.0 (Для ПО 5.8 и выше)
SDK добавляется через Package Manager (Не забудьте распаковать куда-нибудь).
Базовые настройки для проекта следующие:
- в качестве примера можно взять стандартный VR Template, который предлагается при создании проекта.
- после того как SDK интегрирован, важно внести правки в Project Settings -> Player -> Android:
1) Pico работает только с Vulkan API, поэтому во вкладке Other Settings отключаем Auto Graphics API и оставляем там только Vulkan
2) ниже не забываем задать название android-пакету (com.xx.yy)
3) Minimum API Level = 29 (Android 10)
Начиная с 2.1.5 можно задать свое лого заставку при запуске.
Далее, не забываем в Project Settings -> XR Plug-in Management во вкладке Android проставить в качестве XR провайдера PICO (и галочку Initialize XR on Startup тоже, если не стояла)
👍5
Возможные проблемы при разработке под Pico Unity
- После того как сделал билд, и установил в шлеме, проект не грузится\вылетает при запуске
О: Вы используете корректный SDK? Если вы используете последний SDK, а прошивка у вас старая, то вы не выполняете требование по ПО для SDK, он не находит нужные для работы библиотеки в шлеме и вылетает (вы можете убедится в этом, если выполните logcat через adb (это логирование для поиска ошибок)). Аналогично и про последнюю версию Unity, если SDK устаревший а Unity последний, то также возникнут проблемы (более новый OpenXR в Unity 2022, для 2.1.4 последний Unity - 2021 LTS)
- При билде возникают ошибки...
Обозначу некоторые, с которыми я столкнулся
1) Ошибка Gradle, в описании, помимо несовместимости с R5 в будущих версиях, где-то указано что есть проблема с чтением debug-ключа для компиляции под android. Решение - удалить в корне домашнего каталога (C://Users/ИМЯ ВАШЕГО ПОЛЬЗОВАТЕЛЯ) .android (оно скрытное, не забудьте включить отображение скрытых папок и файлов в системе). Билд пересоздаст ключ при след. запуске.
2) Ошибка Gradle, в описании говорится про ошибки доступа к Android SDK. Не уверен что это критично, ибо ошибка выше важнее, но все же. Вы можете в Preferences -> External Tools задать свой Android SDK, или отключить галочку, он может в этом случае найти сам Android SDK (если вы например ставили Android Studio)
- Голова слишком высоко в сцене!
О: В шаблоне по умолчанию задана высота головы, как выяснилось это не нужно, можно удалить у XRRig Camera Y Offset
- Предметы начинают "просвечиваться" слишком близко к голове!
О: XRRig -> Camera Offset -> Main Camera -> Clipping Planes, задайте в Near 0, он автоматом пропишет минимально допустимое значение, оно уже сделает взаимодействие комфортнее.
- После того как сделал билд, и установил в шлеме, проект не грузится\вылетает при запуске
О: Вы используете корректный SDK? Если вы используете последний SDK, а прошивка у вас старая, то вы не выполняете требование по ПО для SDK, он не находит нужные для работы библиотеки в шлеме и вылетает (вы можете убедится в этом, если выполните logcat через adb (это логирование для поиска ошибок)). Аналогично и про последнюю версию Unity, если SDK устаревший а Unity последний, то также возникнут проблемы (более новый OpenXR в Unity 2022, для 2.1.4 последний Unity - 2021 LTS)
- При билде возникают ошибки...
Обозначу некоторые, с которыми я столкнулся
1) Ошибка Gradle, в описании, помимо несовместимости с R5 в будущих версиях, где-то указано что есть проблема с чтением debug-ключа для компиляции под android. Решение - удалить в корне домашнего каталога (C://Users/ИМЯ ВАШЕГО ПОЛЬЗОВАТЕЛЯ) .android (оно скрытное, не забудьте включить отображение скрытых папок и файлов в системе). Билд пересоздаст ключ при след. запуске.
2) Ошибка Gradle, в описании говорится про ошибки доступа к Android SDK. Не уверен что это критично, ибо ошибка выше важнее, но все же. Вы можете в Preferences -> External Tools задать свой Android SDK, или отключить галочку, он может в этом случае найти сам Android SDK (если вы например ставили Android Studio)
- Голова слишком высоко в сцене!
О: В шаблоне по умолчанию задана высота головы, как выяснилось это не нужно, можно удалить у XRRig Camera Y Offset
- Предметы начинают "просвечиваться" слишком близко к голове!
О: XRRig -> Camera Offset -> Main Camera -> Clipping Planes, задайте в Near 0, он автоматом пропишет минимально допустимое значение, оно уже сделает взаимодействие комфортнее.
👍2❤1
По умолчанию в VR Template уже настроен Input Manager, но если вы создали пустой 3D проект, то вот вам файл пресета.
А теперь объяснение что есть что. Если ссылаться на документацию Unity, то можно получить информацию о назначениях кнопок. Наиболее близко к действительности - колонка с Oculus, а именно:
1) Left\Right Primary2DAxis - левый\правый джойстик контроллеров (сама позиция)
2) trigger - "спусковой крюк" контроллеров (float, т.е. со всеми степенями зажатия)
3) grip - то что зажимает большой палец при обхвате (float)
4) primaryButton
- left - X кнопка
- right - A кнопка
secondaryButton
- left - Y кнопка
- right - B кнопка
5) primary\secondary touch - если человек сделал касание, но не нажал
6) grip\triggerButton - bool нажатие клавиши (нажата или нет, без степеней насколько сильно как в обычном варианте)
7) primary2DAxisClick - bool, нажат ли джойстик (как R3 или L3 в PS3\4\5 геймпадах, нажаты ли стики сами)
8) primary2DAxisTouch - bool, есть ли прикосновение к джойстику
9) menuButton - кнопка меню.
А теперь объяснение что есть что. Если ссылаться на документацию Unity, то можно получить информацию о назначениях кнопок. Наиболее близко к действительности - колонка с Oculus, а именно:
1) Left\Right Primary2DAxis - левый\правый джойстик контроллеров (сама позиция)
2) trigger - "спусковой крюк" контроллеров (float, т.е. со всеми степенями зажатия)
3) grip - то что зажимает большой палец при обхвате (float)
4) primaryButton
- left - X кнопка
- right - A кнопка
secondaryButton
- left - Y кнопка
- right - B кнопка
5) primary\secondary touch - если человек сделал касание, но не нажал
6) grip\triggerButton - bool нажатие клавиши (нажата или нет, без степеней насколько сильно как в обычном варианте)
7) primary2DAxisClick - bool, нажат ли джойстик (как R3 или L3 в PS3\4\5 геймпадах, нажаты ли стики сами)
8) primary2DAxisTouch - bool, есть ли прикосновение к джойстику
9) menuButton - кнопка меню.
👍3
Еще мне известно из опыта что и к кнопке скриншота можно получить доступ, но пока это для меня тайна, что это)
Использование весьма тривиально. В коде через Input.GetAxis (если float состояние) или GetButtonDown (bool) можно получать все необходимые значения.
Пример: Input.GetAxis("XRI_Left_Primary2DAxis_Horizontal"); //Возвращает float данные о том в каком положении джойстик левого контроллера по горизонтали.
Использование весьма тривиально. В коде через Input.GetAxis (если float состояние) или GetButtonDown (bool) можно получать все необходимые значения.
Пример: Input.GetAxis("XRI_Left_Primary2DAxis_Horizontal"); //Возвращает float данные о том в каком положении джойстик левого контроллера по горизонтали.
👍2
Меня часто пугали аргументом что люди будут тут задавать вопросы, которые немного банальны, и человек что знает как и что просто устанет отвечать на это. Да, необходим какой-то базис в разработке. Как я говорил уже в Базовой информации по разработке, вы уже должны уметь делать 3д игры.
Потому, вместо того чтобы посылать людей изучать весь интернет в поисках божественного рецепта как же начать, я вам просто предложу один из вариантов, который мне советовали, да и я считаю его действительно приемлемым стартом.
Решение! - learn.unity.com. Да, все гениально - просто. Что может быть лучше чем учится на материале, что предлагают сами разработчики движка?)
Самый простой старт - Pathways, начиная с Unity Essentials, который я благополучно пропустил... переходя к Junior Programmer, который в начале уже берет необходимый так по мне модуль Create with Code, а потом с дополнительными умениями из Creative Core или же напрямик к VR Development... Вы в целом закроете все необходимое для свободного плавания.
Потому, вместо того чтобы посылать людей изучать весь интернет в поисках божественного рецепта как же начать, я вам просто предложу один из вариантов, который мне советовали, да и я считаю его действительно приемлемым стартом.
Решение! - learn.unity.com. Да, все гениально - просто. Что может быть лучше чем учится на материале, что предлагают сами разработчики движка?)
Самый простой старт - Pathways, начиная с Unity Essentials, который я благополучно пропустил... переходя к Junior Programmer, который в начале уже берет необходимый так по мне модуль Create with Code, а потом с дополнительными умениями из Creative Core или же напрямик к VR Development... Вы в целом закроете все необходимое для свободного плавания.
👍4❤🔥1
Да, тут английский. Не сказать что он тяжелый, весьма базовый. Да и подкреплено это видеоматериалами действий.
Ну и... это ж бесплатно ;) Куда ж лучше, чем если бы вам впаривали очередные курсы от какой-либо компании ;)
(Не посчитайте что это реклама :D, просто это лучше чем игнорировать эту проблему, если она когда-нибудь возникнет)
Ну и напомню что у нас есть чат. Заходите, спрашивайте, делитесь творениями ;)
Ну и... это ж бесплатно ;) Куда ж лучше, чем если бы вам впаривали очередные курсы от какой-либо компании ;)
(Не посчитайте что это реклама :D, просто это лучше чем игнорировать эту проблему, если она когда-нибудь возникнет)
Ну и напомню что у нас есть чат. Заходите, спрашивайте, делитесь творениями ;)
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Новость для тех кто на Pico 4 и на 5.4.0 прошивке!
Тут недавно в новостях (огромная благодарность PicoLAND) открыли способ использования последних SDK под устаревшую прошивку 5.4.0. Это решает проблему с использованием последней версии Unity, и последнего SDK 2.3.0. Да и в целом иметь гибрид функционала последних прошивок в 5.4.0 это довольно забавно. Проверено, так что пользуйтесь!
Тут недавно в новостях (огромная благодарность PicoLAND) открыли способ использования последних SDK под устаревшую прошивку 5.4.0. Это решает проблему с использованием последней версии Unity, и последнего SDK 2.3.0. Да и в целом иметь гибрид функционала последних прошивок в 5.4.0 это довольно забавно. Проверено, так что пользуйтесь!
❤🔥3👍2
Возможно для кого-то не новость, но все же...
Как вы знаете, существует OpenXR, этакая попытка унифицировать множества VR устройств в одну библиотеку. Часть элементов, которые мы используем, уже являются частью OpenXR, а Pico SDK в это интегрируется... но не полностью. Тот факт что мы используем в качестве XR-провайдера PICO а не OpenXR как бы на это намекают.
Головной же болью будет то, как работать с Hand Tracking (Управление руками). У OpenXR есть своя реализация подобного управления, но... она отличается от Pico, и мало того, не подхватывается. Нужно вспоминать про "чудесный" PXR_Manager, проставлять там наличие этой фичи, иработать с PXR библиотеками... (А не нужно. Только включить в PXR Manager и можно работать в XR Hands (OpenXR реализация). Разберусь с искаженным скелетным Mesh и напишу отдельно статью)
Ранее интеграцию более плотную уже делала Pico с экспериментальным модулем OpenXR, в этом случае управление спокойно интегрировалось в Interaction Profiles внутри OpenXR, что давало куда более сильную свободу в мультиплатформе. Но его потом убрали.
Так вот, новость... ожидаем возвращение его в октябре. Саму новость не нашел, но нашел ответ на форуме от Pico.
Как вы знаете, существует OpenXR, этакая попытка унифицировать множества VR устройств в одну библиотеку. Часть элементов, которые мы используем, уже являются частью OpenXR, а Pico SDK в это интегрируется... но не полностью. Тот факт что мы используем в качестве XR-провайдера PICO а не OpenXR как бы на это намекают.
Головной же болью будет то, как работать с Hand Tracking (Управление руками). У OpenXR есть своя реализация подобного управления, но... она отличается от Pico, и мало того, не подхватывается. Нужно вспоминать про "чудесный" PXR_Manager, проставлять там наличие этой фичи, и
Ранее интеграцию более плотную уже делала Pico с экспериментальным модулем OpenXR, в этом случае управление спокойно интегрировалось в Interaction Profiles внутри OpenXR, что давало куда более сильную свободу в мультиплатформе. Но его потом убрали.
Так вот, новость... ожидаем возвращение его в октябре. Саму новость не нашел, но нашел ответ на форуме от Pico.
👍7❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Hand Tracking и ужасы мутированной Pico 5.4
Работал с этим долго, и вот благодаря этому обнаружилось что:
Модификация 5.4 для поддержки нового SDK 2.3.0 - вещь действительно нестабильная, ему явно не хватает компонентов будущих обновлений. Это видно в управлении руками.
1. В SDK 2.3.0 - OpenXR полная реализация. Т.е. достаточно работать с XR Hands внутри Unity. (Но PXR_Manager необходим)
2. Нативный Pico Hand Tracking работает некорректно в SDK 2.3.0 для 5.4 с модификацией на библиотеку, в виду перехода на OpenXR элементы, но что странно - XR Hands OpenXR работает лучше, хотя mesh генерирует отвратно. Причина - отсутствия обнаружения трех костей. Он начинает выворачивать mesh. Нативный - выворачивает mesh еще сильнее.
3. Начиная с 5.7 и выше нет никаких проблем, не удивительно - SDK 2.3.0 официально с 5.7
4. В SDK 2.2.0 работает только нативная реализация, XR Hands не поддерживается. Но, нативная работает вполне корректно. Что уже решает вопрос и с Unity 2022 под Pico 5.4, своим лого, и с Hand Tracking.
Работал с этим долго, и вот благодаря этому обнаружилось что:
Модификация 5.4 для поддержки нового SDK 2.3.0 - вещь действительно нестабильная, ему явно не хватает компонентов будущих обновлений. Это видно в управлении руками.
1. В SDK 2.3.0 - OpenXR полная реализация. Т.е. достаточно работать с XR Hands внутри Unity. (Но PXR_Manager необходим)
2. Нативный Pico Hand Tracking работает некорректно в SDK 2.3.0 для 5.4 с модификацией на библиотеку, в виду перехода на OpenXR элементы, но что странно - XR Hands OpenXR работает лучше, хотя mesh генерирует отвратно. Причина - отсутствия обнаружения трех костей. Он начинает выворачивать mesh. Нативный - выворачивает mesh еще сильнее.
3. Начиная с 5.7 и выше нет никаких проблем, не удивительно - SDK 2.3.0 официально с 5.7
4. В SDK 2.2.0 работает только нативная реализация, XR Hands не поддерживается. Но, нативная работает вполне корректно. Что уже решает вопрос и с Unity 2022 под Pico 5.4, своим лого, и с Hand Tracking.
Базовая информация по использованию Hand Tracking в Unity
Если у вас 5.7 и выше:
- Заходим в Package Manager - Unity Registry, и добавляем XR Hands в проект
- Экспортируем в проект Hand Visualizer (это пример, его можно увидеть во вкладке XR Hands внутри Package Manager)
- На сцене разместите PXR_Manager, включите там Hand Tracking
- Разместите prefab Left\Right Hand Tracking в XR Origin рядом с главной камерой.
...все.
Если у вас ниже - используем SDK ниже, и нативный способ.
- Переходим к пакетам (Packages) и ищем PICO Integration
(там, если что, есть и prefab нашего контроллера с полным перехватом управления и индикацией зарядки)
- В Prefabs есть Hands Left\Right, перетаскиваем схожим образом с OpenXR - в XRRig рядом с камерой.
- На сцене разместите PXR_Manager, включите там Hand Tracking
...все.
Заранее отвечу про "физические" руки. Дело в том что mesh - динамический, нельзя просто задать Mesh Collider. Есть ухищрения и даже реализации, но самый простой способ - создание в костях упрощенные 3д объекты с коллайдером и физикой. Можно скрыть их видимость и в целом терпимо ;)
Если у вас 5.7 и выше:
- Заходим в Package Manager - Unity Registry, и добавляем XR Hands в проект
- Экспортируем в проект Hand Visualizer (это пример, его можно увидеть во вкладке XR Hands внутри Package Manager)
- На сцене разместите PXR_Manager, включите там Hand Tracking
- Разместите prefab Left\Right Hand Tracking в XR Origin рядом с главной камерой.
...все.
Если у вас ниже - используем SDK ниже, и нативный способ.
- Переходим к пакетам (Packages) и ищем PICO Integration
(там, если что, есть и prefab нашего контроллера с полным перехватом управления и индикацией зарядки)
- В Prefabs есть Hands Left\Right, перетаскиваем схожим образом с OpenXR - в XRRig рядом с камерой.
- На сцене разместите PXR_Manager, включите там Hand Tracking
...все.
Заранее отвечу про "физические" руки. Дело в том что mesh - динамический, нельзя просто задать Mesh Collider. Есть ухищрения и даже реализации, но самый простой способ - создание в костях упрощенные 3д объекты с коллайдером и физикой. Можно скрыть их видимость и в целом терпимо ;)
Pico Developer
Hand Tracking и ужасы мутированной Pico 5.4 Работал с этим долго, и вот благодаря этому обнаружилось что: Модификация 5.4 для поддержки нового SDK 2.3.0 - вещь действительно нестабильная, ему явно не хватает компонентов будущих обновлений. Это видно в управлении…
Примеры можно увидеть, начиная где-то здесь.
Напоминаю, что у нас есть чат, я наверн закреплю ссылку, так что не пугайтесь уведомления
Напоминаю, что у нас есть чат, я наверн закреплю ссылку, так что не пугайтесь уведомления
👍1🆒1
Pico Developer pinned «Приветствую вас на канале посвященном разработке VR приложений под устройства Pico. Ссылка на чат У самого автора есть Pico 4, а потому вещаю пока что от своего опыта, но в будущем, если будут иные участники, информация будет обновляться и касательно иных…»
Появилась возможность и для Pico 3 использовать самый последний SDK.
(под прошивку 5.4.0)
Ссылка на APK файл (нужно только установить на шлем)
В чате уже проверили работоспособность, огромное спасибо за это Komandor 15
Пока что без OpenXR фикса
(да и ставится под сомнение вообще данный фикс, если честно. Это можно увидеть на примере трекинга рук)
У нас умудрились поставить OpenXR fix Pico 4 на Pico 3, лишь с этим появилась полная работоспособность... Но помечу, что OpenXR fix под Pico 3 не был еще предоставлен группой PP Stuff, потому, на свой страх и риск.
(под прошивку 5.4.0)
Ссылка на APK файл (нужно только установить на шлем)
В чате уже проверили работоспособность, огромное спасибо за это Komandor 15
Пока что без OpenXR фикса
Пока разбирались что вообще происходит с Pico 3 при OpenSDK fix в PP Stuff...
В тестовом виде, релизнули и OpenXR fix под Pico 3 (Прошивка 5.4.0)
Ссылка на скачивание
Ссылка на скачивание в ТГ
Установка через компьютер, аналогично и для Pico 4
Антивирус ругается, Python довольно некрасиво взаимодействует с adb для установки необходимых компонентов в шлем.
Удалите предыдущий OpenXR fix, перед тем как ставить этот!!! (если ставили, конечно)
В тестовом виде, релизнули и OpenXR fix под Pico 3 (Прошивка 5.4.0)
Ссылка на скачивание
Ссылка на скачивание в ТГ
Установка через компьютер, аналогично и для Pico 4
Антивирус ругается, Python довольно некрасиво взаимодействует с adb для установки необходимых компонентов в шлем.
Удалите предыдущий OpenXR fix, перед тем как ставить этот!!! (если ставили, конечно)
На фоне скандалов по поводу требования доплачивать разработчикам движка за каждую установку приложения, сделанного в Unity, весьма забавно продолжать постигать его дальше. (Godot меж тем все ближе ...)
Мы уже знаем как обращаться к контроллерам, чтобы закрыть тему с ними, остается лишь познать прелести в-В-вибрРрации!
Пользуемся документацией SDK.
В отличии от Input Manager, тут все делается уже через код, т.к. обращаемся к Pico SDK
Первое что нужно в коде - пометить что используете данный SDK. Если SDK уже в проекте, то достаточно в начале кода подписать
Значения силы варьируются от 0 до 1 (float данные)
Время задается в мс (1 сек = 1000 мс)
Частоту, которую могут выдать контроллеры - от 50 до 500Гц (по заверению Pico), однако я не рекомендую идти дальше 300, ибо выше контроллеры напоминают пищалку, нежели контроллеры с вибрацией.
Пользуемся документацией SDK.
В отличии от Input Manager, тут все делается уже через код, т.к. обращаемся к Pico SDK
Первое что нужно в коде - пометить что используете данный SDK. Если SDK уже в проекте, то достаточно в начале кода подписать
using Unity.XR.PXR;
Существует 2 варианта вибраций - (не) буферный. не-буферный - базовый (Pico 4&3 поддерживает) (буферный - только Pico 4) Вот пример (SDK 2.1.4):PXR_Input.SendHapticImpulse(PXR_Input.VibrateType.RightController, 0.5f, 500, 100);
- Создает ивент вибрации на правый контроллер с средней силой (0.5f), на 500мс, с частотой 100ГцЗначения силы варьируются от 0 до 1 (float данные)
Время задается в мс (1 сек = 1000 мс)
Частоту, которую могут выдать контроллеры - от 50 до 500Гц (по заверению Pico), однако я не рекомендую идти дальше 300, ибо выше контроллеры напоминают пищалку, нежели контроллеры с вибрацией.