Как переместить объект с помощью контроллера движения - PullRequest
0 голосов
/ 10 апреля 2019

Используя сценарии MRTK V2 и c #, мне нужно захватить и переместить объект (скажем, куб) вокруг камеры, на то же расстояние, на котором он был захвачен, и чтобы куб был направлен в сторону камеры, чтобы изначально оставаться перпендикулярным камере.Я не знаю, ясно ли я ...

Я не нашел какого-то "захватывающего" примера MRTK v2, как это было в оригинальном MRTK, поэтому мне интересно, как это программировать на самом деле,Я хочу повлиять на преобразование объекта, не только использовать «интерактивный» скрипт.

Я смог прочитать преобразование контроллера в начале и в конце движения, но я 'Мне интересно, как повлиять на преобразование целевого объекта, чтобы он оставался на фиксированном расстоянии от контроллера и оставался перпендикулярно контроллеру (выбранное лицо по-прежнему обращено к камере).

Я пытался повлиять на преобразование целевого объекта и искал правильный расчет, но безуспешно.

Есть идеи, где я мог бы начать искать?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Вы можете добавить ManipulationHandler к объекту, который вы хотите переместить. Вот несколько примеров шагов:

  1. Добавьте Box Collider к объекту, который вы хотите переместить.
  2. Добавьте ManipulationHandler ваш объект
  3. Чтобы объект сохранял свое первоначальное вращение относительно вас, установите для параметра «Режим поворота одной рукой» значение «Поддерживать вращение для пользователя».
  4. Если вы также хотите иметь возможность непосредственно захватить объект (это для VR и HoloLens 2), то добавьте компонент NearInteractionGrabbable к вашему объекту.

Вот пример конфигурации, в которой я должен сделать куб подвижным:

enter image description here

Пример использования ManipulationHandler см. В разделе Лунный модуль или объекты Cheese в сцене HandInteractionExamples по адресу Assets\MixedRealityToolkit.Examples\Demos\HandTracking\Scenes\HandInteractionExamples.unity

0 голосов
/ 12 апреля 2019

В дополнение к ответу Джулии, приведенному выше, чтобы приблизиться к выполнению вашего требования: «... так, чтобы оно оставалось на фиксированном расстоянии от контроллера ...», установите «Ограничение при движении» на «Фиксированное расстояние от головы» , Я знаю, что это не в полной мере отвечает вашим заявленным требованиям, но может быть достаточно близко.

Если вам действительно нужно выполнить все ваши заявленные требования, вам, возможно, придется подумать о реализации пользовательского «Солвера».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...