Обновление с предыдущих версий

Поиск текущей версии

Чтобы узнать, какая версия МРТК сейчас используется, выполните следующие инструкции:

  1. Открытие проекта МРТК в Unity
  2. перейдите в папку "микседреалититулкит" в окне Project
  3. Откройте файл с именем «Version».

Если указанный файл и папка не существуют, вы используете более новую версию МРТК. В этом случае попробуйте выполнить следующие действия.

  1. перейдите к папке "Mixed Reality набор средств Foundation"
  2. Щелкните "package.js", чтобы просмотреть предварительный просмотр в Unity или открыть его в текстовом редакторе.
  3. Найдите строку со словом Version:

Обновление до новой версии МРТК

Настоятельно рекомендуется запустить средство миграции после обновления мртк для автоматического исправления и обновления с устаревших компонентов и настроить на критические изменения. Средство миграции является частью пакета средств .

В приведенных ниже инструкциях описан путь обновления 2.4.0 to 2.5.0. Если проект находится в 2.3.0 или более ранней версии, прочтите изменения между версиями , чтобы понять путь обновления, или ознакомьтесь с инструкциями предыдущего выпуска , чтобы выполнить обновление версий по версии.

Mixed Reality Feature Tool

Самый простой способ обновить МРТК до более новой версии МРТК — использовать средство "функция смешанной реальности " для загрузки последних пакетов и их загрузки непосредственно в проект Unity.

Если в проекте ранее использовались файлы ресурсов Unity (. пакет unitypackage), см. эти инструкции.

Файлы ресурсов Unity (. пакет unitypackage)

Другой способ обновления — вручную загрузить пакеты Unity МРТК и применить их к проекту. См. действия ниже.

  1. Сохраните копию текущего проекта, если вы достигли любого трудностямиа в любой момент на шагах обновления.
  2. Закрыть Unity
  3. В папке Assets удалите следующие папки мртк вместе с файлами. meta (проект может иметь не все перечисленные папки).
    • МРТК/Core
    • МРТК/примеры
    • МРТК и расширения
    • МРТК и поставщики
    • МРТК И ПАКЕТ SDK
    • МРТК и службы
    • МРТК/Стандардассетс

    Важно!

    Если в шейдеры МРТК были внесены изменения, создайте локальную резервную копию перед удалением папки МРТК/Стандардассетс

    • МРТК и средства

    Важно!

    НЕ удаляйте папку микседреалититулкит. Generated или ее мета файл.

  4. Удаление папки библиотеки

    Важно!

    Некоторые средства Unity, такие как Unity Коллаб, сохраняют сведения о конфигурации в папке Library. При использовании средства, которое делает это, сначала скопируйте папку с данными этого средства из библиотеки перед удалением, а затем восстановите ее после повторного создания библиотеки.

  5. Повторное открытие проекта в Unity
  6. Импорт новых пакетов Unity
    • Foundation — сначала импортируйте этот пакет
    • Инструменты
    • Используемых Расширений

    Примечание

    Если были установлены дополнительные расширения, их, возможно, потребуется повторно импортировать.

    • Используемых Примеров
  7. Закройте Unity и удалите папку библиотеки (сначала прочитайте примечание ниже). Этот шаг необходим для принудительного обновления базы данных активов Unity и согласования существующих настраиваемых профилей.
  8. Запуск Unity и для каждой сцены в проекте
    • Удалите микседреалититулкит и микседреалитиплайспаце, если они есть, из иерархии. При этом будет удалена основная камера, но она будет создана повторно на следующем шаге. Если какие-либо свойства основной камеры были изменены вручную, их необходимо будет повторно применить вручную после создания новой камеры.
    • Выберите микседреалититулкит-> добавить в сцену и настроить .
    • Выберите микседреалититулкит-> служебные программы-> профили сопоставления контроллеров > (только один раз). при этом будут обновлены все пользовательские профили сопоставления контроллеров с обновленными осями и данными, оставляя настраиваемые действия ввода без изменений.
  9. запустите средство миграции и запустите средство на полной Project , чтобы убедиться, что весь код обновлен до последней версии. Окно миграции содержит ряд различных обработчиков миграции, каждый из которых должен выполняться самостоятельно. Этот шаг включает в себя следующее:
    • Выберите первый обработчик миграции из раскрывающегося списка Выбор обработчика миграции .
    • нажмите кнопку "полная Project".
    • Нажмите кнопку "Добавить полную версию проекта для миграции" (это будет проверять весь проект для переносимых объектов).
    • Нажмите кнопку "миграция", которая должна быть включена при обнаружении любых переносимых объектов.
    • Повторите предыдущие три шага для каждого из обработчиков миграции в раскрывающемся списке. (Ознакомьтесь с этой проблемой , которая охватывает работу, которую можно сделать для упрощения процесса миграции в будущем выпуске).

Переключение из файлов ресурсов Unity в инструмент для функций смешанной реальности

Переключение из файлов ресурсов Unity в пакеты средств смешанной реальности предоставляет ряд преимуществ.

  • Упрощенное обновление
  • Более быстрое время компиляции
  • меньше проектов в Visual Studio решении

Переход на использование средства "функция смешанной реальности" требует однократного выполнения ручных действий.

  1. Сохраните копию текущего проекта.
  2. Закрыть Unity
  3. В папке Assets удалите следующие папки мртк вместе с файлами. meta (проект может иметь не все перечисленные папки).
    • МРТК/Core
    • МРТК/примеры
    • МРТК и расширения
    • МРТК и поставщики
    • МРТК И ПАКЕТ SDK
    • МРТК и службы
    • МРТК/Стандардассетс

    Важно!

    Если в шейдеры МРТК были внесены изменения, создайте локальную резервную копию перед удалением папки МРТК/Стандардассетс

    • МРТК и средства

    Важно!

    НЕ удаляйте папку микседреалититулкит. Generated или ее мета файл.

  4. Удаление папки библиотеки

    Важно!

    Некоторые средства Unity, такие как Unity Коллаб, сохраняют сведения о конфигурации в папке Library. При использовании средства, которое делает это, сначала скопируйте папку с данными этого средства из библиотеки перед удалением, а затем восстановите ее после повторного создания библиотеки.

  5. Повторное открытие проекта в Unity

после выполнения предыдущих действий запустите средство "функция смешанной реальности " и импортируйте нужную версию набор средств смешанной реальности.

Обновление 2.3.0 до 2.4.0

Переименование папок Изменения API

Переименование папок в 2.4.0

Папки Микседреалититулкит были переименованы и перемещены в общую иерархию в версии 2,4. Если приложение использует жестко закодированные пути для МРТК ресурсов, их необходимо обновить в соответствии со следующей таблицей.

Предыдущая папка Создать папку
MixedRealityToolkit; МРТК/Core
Микседреалититулкит. примеры МРТК/примеры
Микседреалититулкит. Extensions МРТК и расширения
Микседреалититулкит. Providers МРТК и поставщики
Микседреалититулкит. SDK МРТК И ПАКЕТ SDK
Микседреалититулкит. Services МРТК и службы
Микседреалититулкит. Tests МРТК и тесты
Микседреалититулкит. Tools МРТК и средства

Важно!

MixedRealityToolkit.GeneratedСодержит файлы, созданные клиентом, и остается без изменений.

Установка взгляда на глаза в 2.4.0

Эта версия МРТК изменяет шаги, необходимые для установки взгляда на глаза. Флажок "исэйетраккинженаблед" можно найти в параметрах взгляда профиля входного указателя. Установка этого флажка включает взгляд на глаза, а не на заголовку по умолчанию.

Дополнительные сведения об этих изменениях и полные инструкции по настройке отслеживания взгляда см. в статье Отслеживание отслеживания взглядов .

Поведение указателя взгляда на глаз в 2.4.0

Вид указателя по умолчанию был изменен в соответствии с поведением указателя по умолчанию для основного взгляда. Указатель взгляда на глаз будет автоматически подавлен после обнаружения руки. После произнесения слова "Select" указатель глаза становится видимым снова.

Сведения о настройках взгляда и руки можно найти в статье глаза и руки .

Изменения API в 2.4.0

Классы пользовательских контроллеров

Классы пользовательских контроллеров ранее были определены SetupDefaultInteractions(Handedness) . Этот метод был устаревшим в 2,4, так как параметр правой или левой был избыточен с помощью класса контроллера правой или левой. Новый метод не имеет параметров. Кроме того, многие классы контроллеров определены таким же образом ( AssignControllerMappings(DefaultInteractions); ), поэтому полный вызов был BaseController выполнен рефакторинг и сделан необязательным переопределением, а не обязательно.

Свойства взгляда на глаз

UseEyeTrackingСвойство из GazeProvider реализации IMixedRealityEyeGazeProvider было переименовано в IsEyeTrackingEnabled .

Если вы сделали это ранее...

if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
    gazeProvider.UseEyeTracking = true;
}

Сделать это сейчас...

if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
    gazeProvider.IsEyeTrackingEnabled = true;
}

Свойства Виндовсапичеккер

Следующие свойства Виндовсапичеккер помечены как устаревшие. Используйте IsMethodAvailable IsPropertyAvailable или IsTypeAvailable .

  • UniversalApiContractV8_IsAvailable
  • UniversalApiContractV7_IsAvailable
  • UniversalApiContractV6_IsAvailable
  • UniversalApiContractV5_IsAvailable
  • UniversalApiContractV4_IsAvailable
  • UniversalApiContractV3_IsAvailable

Нет планов по добавлению свойств в Виндовсапичеккер для будущих версий контракта API.

Глтфмешпримитивеаттрибутес только для чтения

Атрибуты-примитивы сетки глтф, используемые для устанавливаемых параметров, теперь доступны только для чтения. Их значения будут заданы один раз при десериализации.

Миграция значка настраиваемой кнопки

Ранее настроенные значки кнопок требуют назначения нового материала для средства визуализации с четырьмя кнопками. Это больше не требуется, поэтому мы рекомендуем переместить текстуры настраиваемых значков в виде значков. Существующие пользовательские материалы и значки сохраняются. Однако они будут менее оптимальными до обновления. Чтобы обновить ресурсы на всех кнопках в проекте до нового рекомендуемого формата, используйте Буттонконфигхелпермигратионхандлер. (набор средств, > служебные программы — > окно миграции — > выбор обработчика миграции — > Microsoft. микседреалити. набор средств. Utilities. Буттонконфигхелпермигратионхандлер)

Диалоговое окно обновления

Если значок не найден в наборе значков по умолчанию во время миграции, в Микседреалититулкит. Generated/Кустомиконсетс будет создан пользовательский набор значков. В диалоговом окне будет указано, что выполнено.

Уведомление о настраиваемом значке

Обновление 2.2.0 до 2.3.0

Изменения API в 2.3.0

контроллерпосесинчронизер

Закрытое поле Контроллерпосесинчронизер. правой или левой помечено как устаревшее. Это должно оказать минимальное воздействие на приложения, так как поле не видимо за пределами его класса.

Метод задания свойства public Контроллерпосесинчронизер. правой или левой был удален (#7012).

MSBuild для Unity

эта версия мртк использует более новую версию MSBuild для Unity, чем предыдущие выпуски. если при загрузке проекта в манифесте диспетчера пакетов Unity указана более старая версия, появится диалоговое окно настройки с установленным флажком включить MSBuild для Unity. При применении будет выполнено обновление.

скриптингутилитиес

Класс Скриптингутилитиес был помечен как устаревший и был заменен Скриптутилитиес в Microsoft. Микседреалити. набор средств. Сборка редактора. Utilities. Новый класс расширяет предыдущее поведение и добавляет поддержку для удаления определений скриптов.

Несмотря на то, что существующий код будет продолжать работать в версии 2.3.0, рекомендуется обновить его до нового класса.

шеллхандрайпоинтер

Члены Линерендерерселектед и Линерендерернотаржет класса Шеллхандрайпоинтер были заменены Линематериалселектед и lineMaterialNoTarget соответственно (#6863).

Замените Линерендерерселектед на Линематериалселектед и/или Линерендерернотаржет на Линематериалнотаржет для разрешения ошибок компиляции.

StartupBehavior пространственного наблюдателя

Пространственные наблюдатели, созданные на основе BaseSpatialObserver класса, теперь соблюдают значение StartupBehavior при повторном включении (#6919).

Чтобы воспользоваться этим исправлением, никаких изменений не требуется.

Элемент управления UX Prefabs обновлен для использования Прессаблебуттон

Следующие Prefabs теперь используют компонент Прессаблебуттон вместо Таучхандлер для NEAR взаимодействия (7070)

  • аниматионбуттон
  • Кнопка
  • ButtonHoloLens1
  • ButtonHoloLens1Toggle
  • CheckBox
  • Радиальный
  • ToggleButton
  • ToggleSwitch
  • унитюибуттон
  • унитюичеккбоксбуттон
  • унитюирадиалбуттон
  • унитюитогглебуттон

Код приложения может потребовать обновления из-за этого изменения.

Пространство имен Виндовсмикседреалитютилитиес

Пространство имен Виндовсмикседреалитютилитиес изменилось с Microsoft. Микседреалити. набор средств. Виндовсмикседреалити. input в Microsoft. Микседреалити. набор средств. Виндовсмикседреалити (#6863).

Обновите инструкции #using, чтобы устранить ошибки компиляции.

Обновление 2.1.0 до 2.2.0

Изменения API в 2.2.0

Имикседреалитибаундарисистем. Contains

Этот метод ранее использовался в определенном экспериментальном перечислении, определенном Unity. Теперь он принимает определяемое МРТК перечисление, идентичное перечислению Unity. Это изменение помогает подготовить МРТК для будущих API границ Unity.

микседреалитисервицепрофилеаттрибуте

Чтобы лучше описать требования для поддержки профиля, Микседреалитисервицепрофилеаттрибуте был обновлен для добавления необязательной коллекции исключенных типов. В рамках этого изменения свойство ServiceType было изменено с Type на Type [] и было переименовано в Рекуиредтипес.

Также было добавлено второе свойство Ексклудедтипес.

Обновление 2.0.0 до 2.1.0

Изменения API в 2.1.0

басенеаринтерактионтаучабле

Был BaseNearInteractionTouchable изменен, чтобы пометить OnValidate метод как виртуальный. Классы, расширяющие BaseNearInteractionTouchable (например NearInteractionTouchableUnityUI ,), были обновлены, чтобы отразить это изменение.

коллидернеаринтерактионтаучабле

Класс ColliderNearInteractionTouchable не рекомендуется к использованию. Обновите ссылки на код для использования BaseNearInteractionTouchable .

имикседреалитимауседевицеманажер

Добавлен

IMixedRealityMouseDeviceManager были добавлены CursorSpeed Свойства и WheelSpeed . Эти свойства позволяют приложениям указать значение множителя, на которое будут масштабироваться скорость курсора и колесика соответственно.

Это критическое изменение, требующее изменения существующих реализаций диспетчера устройств мыши.

Примечание

Это изменение не обратно совместимо с версией 2.0.0.

Не рекомендуется

MouseInputProfileсвойство помечено как устаревшее и будет удалено из будущей версии набор средств Microsoft Mixed Reality. Рекомендуется, чтобы код приложения больше не использовал это свойство.

Интерактивный объект

следующие методы и свойства являются устаревшими и будут удалены из будущей версии набор средств Microsoft Mixed Reality. Рекомендуется обновлять код приложения в соответствии с рекомендациями, содержащимися в атрибуте obsolete и отображаемых в консоли.

  • public bool Enabled
  • public bool FocusEnabled
  • public void ForceUpdateThemes()
  • public bool IsDisabled
  • public bool IsToggleButton
  • public int GetDimensionIndex()
  • public State[] GetStates()
  • public bool RequiresFocus
  • public void ResetBaseStates()
  • public virtual void SetCollision(bool collision)
  • public virtual void SetCustom(bool custom)
  • public void SetDimensionIndex(int index)
  • public virtual void SetDisabled(bool disabled)
  • public virtual void SetFocus(bool focus)
  • public virtual void SetGesture(bool gesture)
  • public virtual void SetGestureMax(bool gesture)
  • public virtual void SetGrab(bool grab)
  • public virtual void SetInteractive(bool interactive)
  • public virtual void SetObservation(bool observation)
  • public virtual void SetObservationTargeted(bool targeted)
  • public virtual void SetPhysicalTouch(bool touch)
  • public virtual void SetPress(bool press)
  • public virtual void SetTargeted(bool targeted)
  • public virtual void SetToggled(bool toggled)
  • public virtual void SetVisited(bool visited)
  • public virtual void SetVoiceCommand(bool voice)

неаринтерактионтаучаблесурфаце

NearInteractionTouchableSurfaceКласс был добавлен и теперь служит базовым классом для NearInteractionTouchable и NearInteractionTouchableUnityUI .

Изменения профиля в 2.1.0

Профиль отслеживания вручную

В сетке "рука" и в совместных визуализациях теперь есть отдельный редактор и параметры проигрывателя. Профиль отслеживания вручную был обновлен, чтобы разрешить установку этих визуализаций; Ничего, все, редактор или проигрыватель.

Режимы визуализации вручную

Для правильной работы с версией 2.1.0 может потребоваться обновить профили отслеживания пользовательских операций.

Примечание

Это изменение не обратно совместимо с версией 2.0.0.

Профиль имитации ввода

Система имитации ввода обновлена, что изменяет несколько параметров в профиле моделирования ввода. Некоторые изменения не могут быть перенесены автоматически, и пользователи могут обнаружить, что профили используют значения по умолчанию.

  1. Все привязки KeyCode и кнопок мыши в профиле заменены универсальной KeyBinding структурой, в которой хранится тип привязки (ключ или мышь), а также фактический код привязки (keyCode или номер кнопки мыши соответственно). Структура имеет собственный инспектор, который позволяет использовать единое отображение и предлагает средство "Автопривязка" для быстрого задания сочетаний клавиш, что позволяет быстро установить привязки к ключам, не выбирая из огромного раскрывающегося списка.

    • фастконтролкэй
    • тогглелефсандкэй
    • тогглеригхсандкэй
    • лефсандманипулатионкэй
    • ригхсандманипулатионкэй
  2. MouseLookToggle ранее был включен в MouseLookButton перечисление как InputSimulationMouseButton.Focused , теперь он является отдельным параметром. Если этот параметр включен, Камера будет удерживать нажатой кнопку мыши после освобождения кнопки, пока не будет нажата клавиша Escape.

  3. HandDepthMultiplier значение по умолчанию было сокращено с 0,1 до 0,03, чтобы учесть некоторые изменения в моделировании ввода. Если при прокрутке камера перемещается слишком быстро, попробуйте уменьшить это значение.

  4. Клавиши для поворота руки были удалены; поворот руки теперь также управляется мышью. Удержание HandRotateButton (Ctrl) с помощью левого или правого ключа манипуляции (лшифт/Space) позволит включить поворот вручную.

  5. В список входных осей появилась новая ось "вверх". Это управляет движением камеры в вертикальном и по умолчанию клавишами Q/E, а также кнопками триггера контроллера.

Дополнительные сведения об этих изменениях см. в статье о службе моделирования ввода .

Профиль поставщика данных мыши

Профиль поставщика данных мыши был обновлен для предоставления новых CursorSpeed WheelSpeed свойств и. Существующие настраиваемые профили будут автоматически иметь значения по умолчанию. При сохранении профиля эти новые значения будут сохранены.

Профиль сопоставления контроллеров

Некоторые оси и типы входных данных были обновлены в 2.1.0, особенно вокруг платформы Опенвр. При обновлении необходимо выбрать микседреалититулкит-> Utilities-> профили сопоставления контроллеров > . При этом будут обновлены все пользовательские профили сопоставления контроллеров с обновленными осями и данными, при этом пользовательские действия, назначенные пользователем, останутся без изменений.

Обновление RC2 до 2.0.0

между выпусками RC2 и 2.0.0 набор средств Microsoft Mixed Reality были внесены изменения, которые могут повлиять на существующие проекты. В этом документе описаны эти изменения и способы обновления проектов до выпуска 2.0.0.

Изменения API в 2.0.0

С момента выпуска RC2 было внесено несколько изменений API, включая некоторые, которые могут нарушить работу существующих проектов. В следующих разделах описаны изменения, произошедшие между выпусками RC2 и 2.0.0.

MixedRealityToolkit;

Следующие общие свойства объекта Микседреалититулкит являются устаревшими.

  • RegisteredMixedRealityServices больше не содержит коллекцию зарегистрированных расширений служб и поставщиков данных.

Для доступа к службам расширений используйте MixedRealityServiceRegistry.TryGetService<T> . Для доступа к поставщикам данных приведите экземпляр службы к IMixedRealityDataProviderAccess и используйте GetDataProvider<T> .

Используйте MixedRealityServiceRegistry или CoreServices вместо этого для следующих устаревших свойств

  • ActiveSystems
  • InputSystem
  • BoundarySystem
  • CameraSystem
  • SpatialAwarenessSystem
  • TeleportSystem
  • DiagnosticsSystem
  • SceneSystem

коресервицес

CoreServicesКласс является заменой для методов доступа статических систем (например: баундарисистем), найденных в MixedRealityToolkit объекте.

Важно!

MixedRealityToolkitМетоды доступа к системе устарели в версии 2.0.0 и будут удалены в следующем выпуске мртк.

В следующем примере кода показан старый и новый шаблон.

// Old
GameObject playAreaVisualization = MixedRealityToolkit.BoundarySystem?.GetPlayAreaVisualization();

// New
GameObject playAreaVisualization = CoreServices.BoundarySystem?.GetPlayAreaVisualization();

Использование нового класса Коресистем гарантирует, что код приложения не будет обновляться, если вы измените приложение так, чтобы оно использовало другой регистратор служб (например, один из экспериментальных диспетчеров служб).

имикседреалитирайкастпровидер

После добавления Имикседреалитирайкастпровидер был изменен профиль конфигурации входной системы. Если у вас есть пользовательский профиль, при запуске приложения могут возникнуть ошибки на следующем рисунке.

Выбор поставщика Райкаст 1

Чтобы исправить эти ошибки, добавьте экземпляр Имикседреалитирайкастпровидер в входной системный профиль.

Выбор поставщика Райкаст 2

Система событий

  • IMixedRealityEventSystemСтарые методы API Register и Unregister были помечены как устаревшие. Они сохраняются для обеспечения обратной совместимости.
  • InputSystemGlobalListener помечен как устаревший. Его функциональность не изменилась.
  • BaseInputHandler базовый класс был изменен с InputSystemGlobalListener на InputSystemGlobalHandlerListener . Это критическое изменение для всех потомков BaseInputHandler .

Мотивация за изменение

Старый API системы событий Register и Unregister потенциально может вызвать несколько проблем в среде выполнения:

  • Если компонент регистрируется для глобальных событий, он получит глобальные входные события всех типов.
  • Если один из компонентов объекта регистрируется для получения глобальных входных событий, все компоненты этого объекта будут иметь глобальные входные события всех типов.
  • Если два компонента одного и того же объекта регистрируются в глобальных событиях, а затем один из них отключен во время выполнения, второй останавливает получение глобальных событий.

Новый API RegisterHandler и UnregisterHandler :

  • Предоставляет явный и детализированный контроль над тем, какие входные события следует прослушивать глобально, а какие — на основе фокуса.
  • Позволяет нескольким компонентам одного и того же объекта прослушивать глобальные события независимо друг от друга.

Как осуществить перенос

  • Если ранее вы вызывали Register / Unregister API непосредственно, замените эти вызовы вызовами метода RegisterHandler / UnregisterHandler . Используйте интерфейсы обработчика, которые реализуются как универсальные параметры. Если вы реализуете несколько интерфейсов и несколько из них прослушивают глобальные события ввода, вызывайте их RegisterHandler несколько раз.
  • Если вы наследуете от InputSystemGlobalListener , измените наследование на InputSystemGlobalHandlerListener . Реализуйте RegisterHandlers и UnregisterHandlers абстрактные методы. В вызове реализации inputSystem.RegisterHandler ( inputSystem.UnregisterHandler ) для регистрации всех интерфейсов обработчика, для которых требуется прослушивать глобальные события.
  • Если вы наследуете от BaseInputHandler , реализуйте RegisterHandlers и UnregisterHandlers абстрактные методы (то же, что и InputSystemGlobalListener ).

Примеры миграции

// Old
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
    private void OnEnable()
    {
        InputSystem?.Register(gameObject);
    }

    private void OnDisable()
    {
        InputSystem?.Unregister(gameObject);
    }
}

// Migrated
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
    private void OnEnable()
    {
        InputSystem?.RegisterHandler<IMixedRealitySourceStateHandler>(this);
        InputSystem?.RegisterHandler<IMixedRealityHandJointHandler>(this);
    }

    private void OnDisable()
    {
        InputSystem?.UnregisterHandler<IMixedRealitySourceStateHandler>(this);
        InputSystem?.UnregisterHandler<IMixedRealityHandJointHandler>(this);
    }
}
// Old
class SampleHandler2 : InputSystemGlobalListener, IMixedRealitySpeechHandler
{
}

// Migrated
class SampleHandler2 : InputSystemGlobalHandlerListener, IMixedRealitySpeechHandler
{
    private void RegisterHandlers()
    {
        InputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
    }

    private void UnregisterHandlers()
    {
        InputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
    }
}

// Alternative migration
class SampleHandler2 : MonoBehaviour, IMixedRealitySpeechHandler
{
    private void OnEnable()
    {
        IMixedRealityInputSystem inputSystem;
        if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
        {
            inputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
        }
    }

    private void OnDisable()
    {
        IMixedRealityInputSystem inputSystem;
        if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
        {
            inputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
        }
    }
}

Отслеживание пространственного положения

Интерфейсы Имикседреалитиспатиалаваренесссистем и Имикседреалитиспатиалаваренессобсервер использовали несколько критических изменений, как описано ниже.

Изменениями

Следующие методы были переименованы для лучшего описания их использования.

  • IMixedRealitySpatialAwarenessSystem.CreateSpatialObjectParent был переименован в для IMixedRealitySpatialAwarenessSystem.CreateSpatialAwarenessObservationParent уточнения его использования.

Добавления

На основе отзывов клиентов была добавлена поддержка простого удаления ранее просмотренных данных о пространственной осведомленности.

  • IMixedRealitySpatialAwarenessSystem.ClearObservations()
  • IMixedRealitySpatialAwarenessSystem.ClearObservations<T>(string name)
  • IMixedRealitySpatialAwarenessObserver.ClearObservations()

Решатели

Некоторые компоненты поиска решения и класс Солверхандлер Manager были изменены для устранения различных ошибок и для более интуитивного использования.

солверхандлер

  • Класс больше не расширяется с ControllerFinder
  • TrackedObjectToReference общедоступное свойство устарело и было переименовано в TrackedTargetType
  • TrackedObjectType устаревшие левые & правильные значения контроллера. Вместо этого MotionController Используйте HandJoint значения или и обновите новое TrackedHandedness свойство, чтобы ограничить отслеживание до левого или правого контроллера.

InBetween

  • TrackedObjectForSecondTransform общедоступное свойство устарело и было переименовано в SecondTrackedObjectType
  • AttachSecondTransformToNewTrackedObject() был удален. Чтобы обновить Поиск решения, измените открытые свойства (т. е. SecondTrackedObjectType)

SurfaceMagnetism

  • MaxDistance общедоступное свойство устарело и было переименовано в MaxRaycastDistance
  • CloseDistance общедоступное свойство устарело и было переименовано в ClosestDistance
  • Значение по умолчанию для параметра RaycastDirectionMode , TrackedTargetForward которое теперь райкастс в направлении перенаправленного целевого преобразования
  • OrientationMode значения Enum Vertical и Full переименованы в TrackedTarget и SurfaceNormal соответственно
  • KeepOrientationVertical Добавлено открытое свойство, определяющее, остается ли ориентация связанных GameObject по вертикали

Кнопки

  • PressableButton Теперь DistanceSpaceMode свойство имеет значение Local по умолчанию. Это позволяет масштабировать кнопки, пока они продолжают нажимать

Обрезка сферы

Интерфейс Клиппингсфере изменился на зеркальное отображение интерфейсов API, находящихся в Клиппингбокс и Клиппингплане.

Свойство RADIUS Клиппингсфере теперь неявно вычисляется на основе шкалы преобразования. Прежде чем разработчики должны будут указать радиус Клиппингсфере в инспекторе. Если вы хотите изменить радиус, просто обновите масштаб преобразования преобразования, как обычно.

Неаринтерактионтаучабле и Покепоинтер

  • Неаринтерактионтаучабле не обрабатывает доступ к холсту пользовательского интерфейса Unity больше. Теперь класс Неаринтерактионтаучаблеунитюи должен использоваться для таучаблес пользовательского интерфейса Unity.
  • Коллидернеаринтерактионтаучабле — это новый базовый класс для таучаблес, основанный на конфликтах, т. е. Каждый сенсорный ввод, кроме Неаринтерактионтаучаблеунитюи.
  • Басенеаринтерактионтаучабле. Дистфронт был перемещен и переименован в Покепоинтер. Таучабледистанце это расстояние, которое Покепоинтер может взаимодействовать с touchables. Раньше каждый сенсорный ввод имеет свое максимальное расстояние взаимодействия, но теперь он определен в Покепоинтер, что позволяет оптимизировать оптимизацию.
  • Басенеаринтерактионтаучабле. Дистбакк был переименован в Покесрешолд. Это позволяет ясно, что Покесрешолд является аналогом Дебаунцесрешолд. Сенсорный элемент активируется, когда Покесрешолд пересекается и освобождается при пересечении Дебаунцесрешолд.

ReadOnlyAttribute

Microsoft.MixedReality.ToolkitПространство имен было добавлено в ReadOnlyAttribute , BeginReadOnlyGroupAttribute и EndReadOnlyGroupAttribute .

поинтеркликкхандлер

Класс PointerClickHandler не рекомендуется к использованию. PointerHandlerВместо этого следует использовать функцию, которая предоставляет те же функциональные возможности.

поддержка HoloLens нажатием кнопки

сопоставления контроллера HoloLensного щелчка не изменяются, WindowsMixedRealityController чтобы быть необработанными WindowsMixedRealityGGVHand . Для этой учетной записи автоматическое обновление будет выполняться при первом открытии профиля Контроллермаппинг. Чтобы активировать этот одноразовый шаг миграции, откройте какие-либо пользовательские профили по крайней мере один раз после обновления до 2.0.0.

интерактаблехигхлигхт

Класс InteractableHighlight не рекомендуется к использованию. InteractableOnFocus FocusInteractableStates Вместо этого следует использовать класс и ресурс. чтобы создать новый Theme ресурс для, щелкните InteractableOnFocus правой кнопкой мыши в окне проекта и выберите пункт создать > смешанную реальность набор средств > взаимодействующей > теме.

хандинтерактионпанзум

HandInteractionPanZoom был перемещен в пространство имен пользовательского интерфейса, так как он не был входным компонентом. HandPanEventData также было перемещено в это пространство имен и упрощено для соответствия с другими данными событий пользовательского интерфейса.

Изменение имени сборки в 2.0.0

в выпуске 2.0.0 все официальные имена сборок смешанной набор средств реальности и связанные с ними файлы определения сборки (. асмдеф) были обновлены в соответствии со следующим шаблоном.

Microsoft.MixedReality.Toolkit[.<name>]

В некоторых случаях объединено несколько сборок для создания лучшего Unity их содержимого. Если в проекте используются пользовательские файлы. асмдеф, они могут потребовать обновления.

В следующих таблицах описывается, как имена файлов RC2. асмдеф сопоставлены с выпуском 2.0.0. Все имена сборок соответствуют имени файла асмдеф.

MixedRealityToolkit;

RC2 2.0.0
Микседреалититулкит. асмдеф Microsoft. Микседреалити. набор средств. асмдеф
Микседреалититулкит. Core. Буилданддеплой. асмдеф Microsoft. Микседреалити. набор средств. Редактор. Буилданддеплой. асмдеф
Микседреалититулкит. Core. definitions. Utilities. Editor. асмдеф Удалено, используйте Microsoft. Микседреалити. набор средств. Редактор. Utilities. асмдеф
Микседреалититулкит. Core. Extensions. Едиторклассекстенсионс. асмдеф Microsoft. Микседреалити. набор средств. Редактор. Классекстенсионс. асмдеф
Микседреалититулкит. Core. Инспекторы. асмдеф Microsoft. Микседреалити. набор средств. Редактор. Инспекторы. асмдеф
Микседреалититулкит. Core. Инспекторы. Сервицеинспекторс. асмдеф Microsoft. Микседреалити. набор средств. Редактор. Сервицеинспекторс. асмдеф
Микседреалититулкит. Core. Утилитиесасинк. асмдеф Microsoft. Микседреалити. набор средств. Async. асмдеф
Микседреалититулкит. Core. Utilities. Editor. асмдеф Microsoft. Микседреалити. набор средств. Редактор. Utilities. асмдеф
Микседреалититулкит. Utilities. Глтф. асмдеф Microsoft. Микседреалити. набор средств. Глтф. асмдеф
Микседреалититулкит. Utilities. Глтф. импортеров. асмдеф Microsoft. Микседреалити. набор средств. Глтф. импортеров. асмдеф

Микседреалититулкит. Providers

RC2 2.0.0
Микседреалититулкит. Providers. Опенвр. асмдеф Microsoft. Микседреалити. набор средств. Providers. Опенвр. асмдеф
Микседреалититулкит. Providers. Виндовсмикседреалити. асмдеф Microsoft. Микседреалити. набор средств. Providers. Виндовсмикседреалити. асмдеф
Микседреалититулкит. Providers. Виндовсвоицеинпут. асмдеф Microsoft. Микседреалити. набор средств. Providers. Виндовсвоицеинпут. асмдеф

Микседреалититулкит. Services

RC2 2.0.0
Микседреалититулкит. Services. Баундарисистем. асмдеф Microsoft. Микседреалити. набор средств. Services. Баундарисистем. асмдеф
Микседреалититулкит. Services. Камерасистем. асмдеф Microsoft. Микседреалити. набор средств. Services. Камерасистем. асмдеф
Микседреалититулкит. Services. Диагностикссистем. асмдеф Microsoft. Микседреалити. набор средств. Services. Диагностикссистем. асмдеф
Микседреалититулкит. Services. Инпутсимулатион. асмдеф Microsoft. Микседреалити. набор средств. Services. Инпутсимулатион. асмдеф
Микседреалититулкит. Services. Инпутсимулатион. Editor. асмдеф Microsoft. Микседреалити. набор средств. Services. Инпутсимулатион. Editor. асмдеф
Микседреалититулкит. Services. Инпутсистем. асмдеф Microsoft. Микседреалити. набор средств. Services. Инпутсистем. асмдеф
Микседреалититулкит. Services. Инспекторы. асмдеф Microsoft. Микседреалити. набор средств. Services. Инпутсистем. Editor. асмдеф
Микседреалититулкит. Services. Сценесистем. асмдеф Microsoft. Микседреалити. набор средств. Services. Сценесистем. асмдеф
Микседреалититулкит. Services. Спатиалаваренесссистем. асмдеф Microsoft. Микседреалити. набор средств. Services. Спатиалаваренесссистем. асмдеф
Микседреалититулкит. Services. Телепортсистем. асмдеф Microsoft. Микседреалити. набор средств. Services. Телепортсистем. асмдеф

Микседреалититулкит. SDK

RC2 2.0.0
Микседреалититулкит. SDK. асмдеф Microsoft. Микседреалити. набор средств. Пакет SDK. асмдеф
Микседреалититулкит. SDK. Инспекторы. асмдеф Microsoft. Микседреалити. набор средств. Tool. Инспекторы. асмдеф

Микседреалититулкит. примеры

RC2 2.0.0
Микседреалититулкит. examples. асмдеф Microsoft. Микседреалити. набор средств. Примеры. асмдеф
Микседреалититулкит. examples. Демонстрация. Глтф. асмдеф Microsoft. Микседреалити. набор средств. Демонстрация. Глтф. асмдеф
Микседреалититулкит. examples. демонстрации. Стандардшадер. Инспекторы. асмдеф Microsoft. Микседреалити. набор средств. Демонстрационные версии. Стандардшадер. Инспекторы. асмдеф
Микседреалититулкит. examples. Демонстрация. Utilities. Инспекторфиелдс. асмдеф Microsoft. Микседреалити. набор средств. Демонстрация. Инспекторфиелдс. асмдеф
Микседреалититулкит. examples. демонстрации. Utilities. Инспекторфиелдс. Инспекторы. асмдеф Microsoft. Микседреалити. набор средств. Демонстрационные версии. Инспекторфиелдс. Инспекторы. асмдеф
Микседреалититулкит. examples. Демонстрация. UX. Интерактаблес. асмдеф Microsoft. Микседреалити. набор средств. Демонстрация. UX. Интерактаблес. асмдеф