Gestore di manipolazione - MRTK2
Lo script ManipulationHandler consente di rendere un oggetto mobile, scalabile e ruotabile usando una o due mani. La modifica 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 gestuale HoloLens (prima generazione) e input vr motion controller immersivo.
Come usare il gestore di manipolazione
Aggiungere il ManipulationHandler
componente script a un GameObject. Assicurarsi anche di aggiungere un collisore all'oggetto, corrispondente ai relativi limiti afferrabili.
Per fare in modo che l'oggetto risponda all'input della mano quasi articolato, aggiungere anche lo NearInteractionGrabbable
script.
Proprietà del controllo

Trasformazione host Trasformazione che verrà trascinata. Il valore predefinito è l'oggetto del componente.
Tipo di manipolazione Specifica se l'oggetto può essere modificato usando una mano, due mani o entrambe.
- Una sola mano
- Solo due mani
- Una e due mani
Tipo di manipolazione a due mani
- Scalabilità: è consentita solo la scalabilità.
- Ruota: è consentita solo la rotazione.
- Scalabilità di spostamento: lo spostamento e il ridimensionamento sono consentiti.
- Rotazione spostamento: lo spostamento e la rotazione sono consentiti.
- Ruota scala: la rotazione e il ridimensionamento sono consentiti.
- Sposta scala di rotazione: è consentito spostare, ruotare e ridimensionare.
Consenti manipolazione a distanza Specifica se la manipolazione può essere eseguita usando un'interazione di gran lunga con i puntatori.
Modalità di rotazione a una mano vicino Specifica il comportamento dell'oggetto quando viene afferrato con una mano o un controller vicino.
Modalità di rotazione a una mano lontano Specifica il comportamento dell'oggetto quando viene afferrato con una mano o un controller a distanza.
Opzioni della modalità rotazione a una mano Specifica la modalità di rotazione dell'oggetto quando viene afferrato con una mano.
- Mantieni rotazione originale: non ruota l'oggetto durante lo spostamento
- Mantieni rotazione all'utente: mantiene la rotazione originale dell'oggetto per l'asse X/Y per l'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 bounds.
- Utente viso: garantisce che l'oggetto sia sempre rivolto all'utente. Utile per slate/pannelli.
- Viso lontano dall'utente: assicura che l'oggetto si volti sempre lontano dall'utente. Utile per gli slate/pannelli configurati all'indietro.
- Ruota intorno al 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 l'ispezione a distanza.
- Ruotare intorno al punto di afferramento: funziona solo per mani/controller articolati. Ruotare l'oggetto come se fosse tenuto da mano/controller. Utile per l'ispezione.
Comportamento di rilascio Quando un oggetto viene rilasciato, specificarne il comportamento di spostamento fisico. Richiede che un componente rigidbody sia su tale oggetto.
- Niente
- Tutto
- Mantieni velocità
- Mantieni velocità Angular
Vincoli sulla rotazione Specifica su quale asse l'oggetto ruota quando interagisce.
- Nessuna
- Solo asse X
- Solo asse Y
- Solo asse Z
Usare lo spazio locale per il vincolo Interruttore per passare dall'applicazione di vincoli rispetto all'asse dello spazio globale o all'asse dello spazio locale.
Vincoli sullo spostamento
- Nessuna
- Fissare la distanza dalla testa
Smoothing Active Specifica se la smussatura è attiva.
Smoothing Amount One Hand Quantità di smussatura da applicare al movimento, alla scala, alla rotazione. Smussare 0 significa non smussare. Valore massimo indica che non viene apportata alcuna modifica al valore.
Events
Il gestore di manipolazione fornisce gli eventi seguenti:
- OnManipulationStarted: attivato all'avvio della manipolazione.
- OnManipulationEnded: viene generato al termine della manipolazione.
- OnHoverStarted: viene generato quando una mano o un controller passa il puntatore del mouse sul manipolabile, vicino o lontano.
- OnHoverEnded: viene generato quando una mano o un controller annulla il passaggio del mouse sull'elemento manipolabile, vicino o lontano.