Condividi tramite


Movimenti - MRTK2

I movimenti sono eventi di input basati sulle mani umane. Esistono due tipi di dispositivi che generano eventi di input del movimento in MRTK:

  • Dispositivi Windows Realtà mista come HoloLens. Questo descrive i movimenti di avvicinamento delle dita ("Tocco aria") e i movimenti di tocco e blocco.

    Per altre informazioni sui movimenti di HoloLens, vedere la documentazione relativa ai movimenti di Windows Realtà mista.

    WindowsMixedRealityDeviceManager esegue il wrapping di Unity XR. WSA. Input.GestureRecognizer per utilizzare gli eventi di movimento di Unity dai dispositivi HoloLens.

  • Dispositivi touch screen.

    UnityTouchController esegue il wrapping della classe Unity Touch che supporta gli schermi di tocco fisici.

Entrambe queste origini di input usano il profilo di movimento Impostazioni per convertire rispettivamente gli eventi Touch e Gesture di Unity nelle azioni di input di MRTK. Questo profilo è disponibile nel profilo di Impostazioni del sistema di input.

Profilo movimento

Eventi di movimento

Gli eventi di movimento vengono ricevuti implementando una delle interfacce del gestore movimenti: IMixedRealityGestureHandler o (vedere la tabella dei gestori eventi).IMixedRealityGestureHandler<TYPE>

Per un esempio di implementazione di un gestore eventi di movimento, vedere La scena di esempio.

Quando si implementa la versione generica, gli eventi OnGestureCompleted e OnGestureUpdated possono ricevere dati tipizzati dei tipi seguenti:

  • Vector2 - Movimento di posizione 2D. Prodotto da touch screen per informare il loro deltaPosition.
  • Vector3 - Movimento di posizione 3D. Prodotto da HoloLens per informare:
  • Quaternion - Movimento di rotazione 3D. Disponibile per origini di input personalizzate, ma non attualmente prodotte da quelle esistenti.
  • MixedRealityPose - Movimento combinato di posizione/rotazione 3D. Disponibile per origini di input personalizzate, ma non attualmente prodotte da quelle esistenti.

Ordine degli eventi

Esistono due catene principali di eventi, a seconda dell'input dell'utente:

  • "Hold":

    1. Tenere premuto il tocco:
      • avvio manipolazione
    2. Tenere premuto il tocco oltre HoldStartDuration:
      • avvio blocco
    3. Tocco di rilascio:
      • blocco completo
      • manipolazione completa
  • "Move":

    1. Tenere premuto il tocco:
      • avvio manipolazione
    2. Tenere premuto il tocco oltre HoldStartDuration:
      • avvio blocco
    3. Spostarsi oltre NavigationStartThreshold:
      • annullamento blocco
      • avviare la navigazione
    4. Tocco di rilascio:
      • manipolazione completa
      • Spostamento completo

Scena di esempio

La scena HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) mostra come usare il puntatore Result per generare un oggetto nella posizione di hit.

Lo GestureTester script (Assets/MRTK/Examples/Demos/HandTracking/Script) è un'implementazione di esempio per visualizzare gli eventi di movimento tramite GameObjects. Le funzioni del gestore modificano il colore degli oggetti indicatore e visualizzano l'ultimo evento registrato negli oggetti di testo nella scena.