Gestore manipolazione - MRTK2

Manipulation handler

Lo script ManipulationHandler consente di rendere un oggetto rimovibile, 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 a mano articolato, raggi di mano, HoloLens (prima generazione) input dei movimenti e input del controller di movimento visore immersivo.

Come usare il gestore di manipolazione

Aggiungere il ManipulationHandler componente script a un GameObject. Assicurarsi di aggiungere anche un collider all'oggetto, che corrisponde ai relativi limiti afferrabili.

Per rendere l'oggetto risponde all'input a mano quasi articolato, aggiungere anche lo NearInteractionGrabbable script.

Using the manipulation handler in the unity editor

Proprietà di controllo

Manipulation Handler structure

Trasformazione host Trasformazione che verrà trascinata. Impostazione predefinita per l'oggetto del componente.

Tipo di manipolazione Specifica se l'oggetto può essere manipolato usando 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à.
  • Ruota: è consentita solo la rotazione.
  • Scala di spostamento: è consentito lo spostamento e il ridimensionamento.
  • Sposta ruota: lo spostamento e la rotazione sono consentiti.
  • Ruota scala: è consentita la rotazione e il ridimensionamento.
  • Sposta scala ruota: lo spostamento, la rotazione e il ridimensionamento sono consentiti.

Manipulation Handler

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

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

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

Opzioni modalità rotazione a mano Specifica il modo in cui l'oggetto ruota quando viene afferrato con una mano.

  • Mantenere la 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 verticale l'oggetto. Utile per gli oggetti con un controllo dei limiti.
  • Utente viso: assicura che l'oggetto faccia sempre fronte all'utente. Utile per gli slati/pannelli.
  • Viso lontano dall'utente: assicura che l'oggetto faccia sempre lontano dall'utente. Utile per i pannelli o i pannelli configurati all'indietro.
  • Ruotare il centro oggetti: funziona solo per mani/controller articolati. Ruotare l'oggetto usando la rotazione della mano/controller, ma sul punto centrale dell'oggetto. Utile per controllare 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 viene rilasciato un oggetto, specificare il comportamento di movimento fisico. Richiede che un componente rigidbody sia su tale oggetto.

  • Nothing
  • Tutto
  • Mantenere la velocità
  • Mantenere Angular velocità

Vincoli sulla rotazione Specifica su quale asse l'oggetto ruota quando interagisce.

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

Usare lo spazio locale per il vincolo Un interruttore per passare da un vincolo all'applicazione dei vincoli rispetto all'asse dello spazio mondiale o all'asse dello spazio locale.

Vincoli per lo spostamento

  • Nessuno
  • Correzione della distanza dalla testa

Smoothing Active Specifica se il smoothing è attivo.

Smoothing Quantità una mano Quantità di smoothing da applicare al movimento, alla scala, alla rotazione. L'smoothing di 0 significa che non si liscia. Il valore massimo non indica alcuna modifica al valore.

Eventi

Il gestore di manipolazione fornisce gli eventi seguenti:

  • OnManipulationStarted: attivato all'avvio della manipolazione.
  • OnManipulationEnded: genera quando termina la manipolazione.
  • OnHoverStarted: viene generato quando un mano/controller passa il puntatore del mouse sul manipolabile, vicino o lontano.
  • OnHoverEnded: viene generato quando un controller/mano non passa il puntatore del mouse sul manipolabile, vicino o lontano.