Gestore di manipolazione - MRTK2

Gestore di manipolazione

Lo script ManipulationHandler consente di rendere un oggetto mobile, scalabile e ruotabile usando una o due mani. La manipolazione può essere limitata in modo che consenta solo determinati tipi di trasformazione. Lo script funziona con vari tipi di input, tra cui HoloLens 2 input della mano articolata, raggi della mano, input del movimento HoloLens (prima generazione) e input del controller movimento vr immersive.

Come usare il gestore di manipolazione

Aggiungere il ManipulationHandler componente script a un GameObject. Assicurarsi anche di aggiungere un collisore all'oggetto, associandone i limiti afferrabili.

Per fare in modo che l'oggetto risponda all'input di mano articolato, aggiungere anche lo NearInteractionGrabbable script.

Uso del gestore di manipolazione nell'editor unity

Proprietà del controllo

Struttura del gestore di manipolazione

Trasformazione host Trasformazione che verrà trascinata. L'impostazione predefinita è l'oggetto del componente.

Tipo di manipolazione Specifica se l'oggetto può essere manipolato utilizzando una mano, due mani o entrambe.

  • Solo una mano
  • Solo due mani
  • Uno e due mani

Tipo di manipolazione a due mani

  • Scalabilità: è consentita solo la scalabilità.
  • Rotazione: è consentita solo la rotazione.
  • Sposta scalabilità: lo spostamento e il ridimensionamento sono consentiti.
  • Sposta rotazione: lo spostamento e la rotazione sono consentiti.
  • Ruota scala: è consentita la rotazione e la scalabilità.
  • Sposta scala rotazione: è consentito lo spostamento, la rotazione e la scalabilità.

Gestore manipolazione

Consenti manipolazione lontano Specifica se la manipolazione può essere eseguita usando l'interazione lontano con puntatori.

Modalità di rotazione di una mano vicino Specifica il comportamento dell'oggetto quando viene afferrato con una mano o un controller vicino.

Modalità rotazione di una mano lontano Specifica il comportamento dell'oggetto quando viene afferrato con una mano o un controller a distanza.

Opzioni della modalità rotazione una mano Specifica la modalità di rotazione dell'oggetto quando viene afferrato con una mano.

  • Mantieni rotazione originale: non ruota l'oggetto mentre viene spostato
  • Mantenere la rotazione all'utente: mantiene la rotazione originale dell'oggetto per l'asse X/Y all'utente
  • La gravità allineata mantiene la rotazione all'utente: mantiene la rotazione originale dell'oggetto all'utente, ma rende l'oggetto verticale. Utile per gli oggetti con un controllo limiti.
  • Utente viso: assicura che l'oggetto faccia sempre fronte all'utente. Utile per slates/pannelli.
  • Viso lontano dall'utente: assicura che l'oggetto si faccia sempre lontano dall'utente. Utile per slates/pannelli configurati all'indietro.
  • Ruotare il centro oggetti: funziona solo per mani/controller articolati. Ruotare l'oggetto usando la rotazione della mano o del controller, ma sul punto centrale dell'oggetto. Utile per l'ispezione a distanza.
  • Ruotare il punto di afferramento: funziona solo per mani/controller articolati. Ruotare l'oggetto come se fosse tenuto da mano/controller. Utile per l'ispezione.

Comportamento della versione Quando un oggetto viene rilasciato, specificare il comportamento di spostamento fisico. Richiede che un componente rigidbody sia su tale oggetto.

  • Nothing
  • Tutto
  • Mantieni velocità
  • Mantieni velocità Angular

Vincoli sulla rotazione Specifica l'asse con cui l'oggetto ruota quando interagisce.

  • Nessuno
  • Solo asse X
  • Solo asse Y
  • Solo asse Z

Usare lo spazio locale per il vincolo Alternanza per l'applicazione di vincoli rispetto all'asse dello spazio globale o all'asse dello spazio locale.

Vincoli sullo spostamento

  • Nessuno
  • Correzione della distanza dalla testa

Smoothing Active Specifica se lo smoothing è attivo.

Smoothing Amount One Hand Quantità di smussamento da applicare al movimento, alla scala, alla rotazione. Lo smussamento di 0 non significa smussamento. Il valore massimo indica che non viene apportata alcuna modifica al valore.

evento

Il gestore di manipolazione fornisce gli eventi seguenti:

  • OnManipulationStarted: generato all'avvio della manipolazione.
  • OnManipulationEnded: viene attivato al termine della manipolazione.
  • OnHoverStarted: viene attivato quando una mano o un controller passa il puntatore del mouse sul manipolabile, vicino o lontano.
  • OnHoverEnded: viene attivato quando una mano o un controller annulla il passaggio del mouse sul manipolabile, vicino o lontano.