Как выполнить InputClickEvent с помощью MRTK v2 C # - PullRequest
0 голосов
/ 12 апреля 2019

В моем проекте было HoloToolkit-Unity-2017.4.3.0-Refresh, но некоторые встроенные скрипты устарели. Я работал над этим и недавно добавил метод OnInputClicked, но при попытке его построить в других скриптах было так много ошибок, что я перешел на MRTK v2.

Я немного осмотрелся, но не смог найти ни одного руководства по созданию события щелчка для устройства HoloLens в какой-либо документации MRTK v2s. IInputHandler больше не входит в MRTK, но IMixedRealityInputHandler работает так же?

Приведенный ниже код показывает, как clickEvent выглядело с HoloToolkit. То же самое с MRTK v2?

public void OnInputClicked(InputEventData eventData)
{ 
   ...
}

Также достаточно ли этого для запуска других методов или мне нужно добавить событие click в void Update() -ish? Еще один - этого достаточно для запуска события щелчка через гололин?

Спасибо!

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

В документации есть руководство по портированию HTK на MRTK: https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/HTKToMRTKPortingGuide.html#interface-and-event-mappings

Содержит таблицу сопоставления интерфейсов, которая должна помочь в переносе префабов и интерфейсов с HTK на MRTK v2.

Что касается этого конкретного случая, IMixedRealityPointerHandler действительно то, что вы ищете, если вам нужно знать, когда была нажата конкретная кнопка (назначенная определенному указателю). Если вы просто хотите узнать, когда какая-либо кнопка была отпущена, IMixedRealityInputHandler может быть лучшим выбором для вас.

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

Я заглянул в него, и он сразу изменился (?) На

public class NewBehaviourScript : MonoBehaviour, IMixedRealityInputHandler
{
    public void OnInputUp(InputEventData eventData)
    {

    }

    public void OnInputDown(InputEventData eventData)
    {

    }
}

Или, может быть, вы предпочитаете IMixedRealityPointerHandler

public class NewBehaviourScript : MonoBehaviour, IMixedRealityPointerHandler
{
    public void OnPointerUp(MixedRealityPointerEventData eventData)
    {

    }

    public void OnPointerDown(MixedRealityPointerEventData eventData)
    {

    }

    public void OnPointerClicked(MixedRealityPointerEventData eventData)
    {

    }
}

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

Здесь вы можете найти полный обзор того, какие входные данные доступны в MRTK 2 и какнастроить его.

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