Невозможно анимировать интерактивный игровой объект с помощью набора инструментов Mixed Reality

Я новичок в разработке Unity Engine и приложений для смешанной реальности, поэтому, пожалуйста, потерпите меня.

Я работал с Microsoft Mixed Reality Toolkit для Unity, чтобы попытаться анимировать игровой объект и переместить его в сторону. Простое действие, очень похожее на пример сцены, предоставленной Microsoft с инструментарием под названием "InteractableObject" (Информационные ссылки предоставлены ниже)

Взаимодействующий объект - смешанная реальность (Microsoft Docs)

Mixed Reality Toolkit-Unity Взаимодействующие объекты и приемники (Github)

Этот пример сцены в Unity имеет несколько объектов, которые будут использоваться в качестве "кнопок". С помощью набора инструментов для смешанной реальности даже объекты, с которыми пользователь должен взаимодействовать, чтобы выполнить какое-то действие, даже если он выбран, считаются кнопкой. По крайней мере, согласно документации, которую я действительно смог найти по этому вопросу. Это серия снимков экрана, на которых изображены панели инспектора для моего GameObject и контейнер для моего объекта:

Панель инспектора GameObject

Панель инспектора GameObject

Панель инспектора контейнера GameObject (часть 1

Панель инспектора контейнера GameObject (часть 1

Панель инспектора контейнера GameObject (часть 2

Панель инспектора контейнера GameObject (часть 2

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

Когда я пытаюсь воспроизвести приложение в редакторе Unity, состояние не меняется, когда я помещаю курсор на объект. Я могу принудительно изменить состояние с помощью редактора и задействовать требуемую анимацию, но она не изменит состояние самостоятельно. Я настроил свой конечный автомат так же, как в примере с Microsoft, и настроил свою переменную состояния также. Он должен перейти из состояния "Наблюдение" в состояние "Целевой" или "ObservationTargeted", когда курсор перемещается на объект. Ниже приведен снимок экрана конечного автомата GameObject и панели инспектора соответствующего перехода:

GameObject Animator State Machine Настройка

GameObject Animator State Machine Настройка

Наблюдение за ObservationTargeted Transition Inspector Panel

Наблюдение за ObservationTargeted Transition Inspector Panel

Я прошел и убедился, что все компоненты, добавленные в Mixed Reality Toolkit, одинаковы и есть. Это включает DefaultCursor, InputManager, MixedRealityCameraParent и Directional Light. Я также проверил, что все сценарии были закодированы одинаково, и они есть. У меня не хватает мест, чтобы посмотреть. Я подключил отладчик Visual Studio к проекту в Unity и убедился, что он сам по себе не меняет состояние. Но я не могу понять, почему. Я полагаю, что проблема связана с настройкой перехода, но я не смог найти проблему. Все остальные упомянутые компоненты предоставлены Microsoft и не изменены ни мной, ни в образце сцены.

Если у кого-то еще была подобная проблема, или, возможно, знаете, где я могу ее найти, пожалуйста, дайте мне знать. Я еще даже не встроил проект в приложение UWP.

0 ответов

Я знаю, что прошло несколько месяцев, но вы все еще ищете решение?

С новейшей версией Mixed Reality Toolkit вы можете заставить любой GameObject действовать как кнопку. Просто прочтите эту документацию. У меня есть несколько кубиков в качестве кнопок в моем проекте Unity, и единственный дополнительный компонент, который я добавил к нему, чтобы заставить его работать, былInteractable, который взят из набора инструментов для смешанной реальности.

Если вы хотите запускать анимацию, когда помещаете курсор на объект (или смотрите на него, если собираетесь использовать его с Hololens), вы можете добавить их в Interactable объект, добавив новое событие (например: OnFocus() событие)

Надеюсь, это поможет в любом случае

Другие вопросы по тегам