Esercizio - Aggiungere l'interazione manuale con objectmanipulator

Completato

Lo script ObjectManipulator supporta la modalità di manipolazione diretta del modello di input delle mani e dei controller del movimento. Quando lo script è collegato a un oggetto, l'utente può spostare, ridimensionare o ruotare l'oggetto con le mani. In questo esercizio si creeranno due cubi, si collegheranno gli script necessari ai cubi e quindi si sposteranno i cubi.

Aggiungere e modificare il primo cubo

  1. Nella barra dei menu selezionare GameObject>3D Object >Cube.

    Screenshot of menu commands for adding the cube.

    Le dimensioni predefinite del cubo sono un metro cubo, che è troppo grande per i nostri scopi. Le dimensioni verranno ridimensionate fino a 20 centimetri cubi.

  2. Selezionare il cubo e quindi in Inspector (Controllo) modificare i valori scale delcubo nella sezione Transform (Trasforma) nel modo seguente:

    X = 0,2, Y = 0,2, Z = 0,2

    Il cubo è stato inserito nella scena nella posizione predefinita (0,0,0). Il cubo si trova quindi nella stessa posizione del visore VR dell'utente e l'utente potrà visualizzare il cubo solo quando si sposta indietro. I valori della posizione del cubo verranno modificati, in modo che si trovi in una posizione migliore per la visualizzazione.

  3. In Inspector (Controllo) modificare i valori Position del cubo nella sezione Transform (Trasforma) nel modo seguente:

    X = -0,2, Y = 1,6, Z = 0,5

    Screenshot of the cube's transform component after updates.

    Si vuole che tre lati del cubo siano visibili, quindi verrà modificata anche la rotazione del cubo.

  4. In Inspector (Controllo) modificare i valori rotazione del cubo nei valori della sezione Transform (Trasforma) nel modo seguente:

    X = 9, Y = 14, Z = 0

    Suggerimento

    Per ingrandire il cubo, selezionarlo, assicurarsi che il cursore si stia passando il puntatore sulla finestra Scena e premere F. È possibile adottare questo approccio per fare zoom avanti su qualsiasi oggetto.

Aggiungere gli script al cubo

Affinché un oggetto sia "afferrabile" con le mani tracciate, deve essere collegato a tre componenti:

  • Componente collisore (non è necessario eseguire alcuna operazione qui; Il cubo di Unity ha già un Box Collider collegato per impostazione predefinita)
  • Componente Manipolatore di oggetti (script)
  • Componente Gestione vincoli (script)
  1. Con il cubo ancora selezionato, nella finestra Inspector selezionare il pulsante Add Component e quindi cercare e selezionare lo script Object Manipulator.

    Screenshot of adding the Object Manipulator script.

    Lo script Object Manipolatore rende un oggetto mobile, scalabile e ruotabile usando una o due mani. Quando si aggiunge lo script Object Manipulator, viene aggiunto automaticamente anche lo script Constraint Manager perché lo script Object Manipulator dipende da tale script.

    Screenshot of the Constraint Manager script added to the cube.

Aggiornare il materiale del cubo

Ai fini delle prestazioni, è consigliabile usare materiali MRTK anziché i materiali Unity predefiniti.

  1. Con il cubo ancora selezionato, trovare ed espandere la sezione Materiali nel componente Renderer mesh.
  2. Sostituire il materiale predefinito con il materiale MRTK_Standard_White, disponibile in Asset MRTK Standard>Materiali. È possibile eseguire questa operazione trascinando il materiale direttamente nel campo Elemento nella sezione Materiali

Aggiungere un secondo cubo

  1. Nella gerarchia fare clic con il pulsante destro del mouse sul cubo e scegliere Duplica. Il cubo duplicato viene visualizzato con il nome Cube (1).The duplicated cube appears with the name Cube (1).

  2. Fare clic con il pulsante destro del mouse sul cubo originale, scegliere Rinomina e assegnare al cubo il nome Near Cube.

  3. Fare clic con il pulsante destro del mouse sul cubo duplicato, scegliere Rinomina e quindi denominare il cubo Far Cube.

    Al momento sembra che sia presente solo un cubo nella visualizzazione Scene. Ciò dipende dal fatto che Near Cube e Far Cube si trovano nella stessa esatta posizione. È ora possibile cambiare la posizione e la rotazione di Far Cube.

  4. Con Far Cube ancora selezionato, modificare i rispettivi valori nel componente Transform nei valori seguenti:

    Posizione: X = 0,6, Y = 1,6, Z = 1,1

    Rotazione: X = 27, Y = 0, Z = 0

    Ora la fotocamera dovrebbe vedere il cubo vicino a sinistra e il cubo Lontano un po 'più lontano a destra. Per confermarlo, nella gerarchia selezionare Fotocamera principale (in MRTK XR Rig> Fotocamera Offset), quindi esaminare la finestra Fotocamera principale nella finestra Scena.

    Screenshot of the Main Camera view in the Scene window.

    Suggerimento

    Se si vuole che la visualizzazione nella finestra Scene abbia un aspetto più simile a quanto visualizzato dalla fotocamera, scorrere nella finestra Scene. Potrebbe essere necessario impostare i flag di cancellazione della fotocamera su Skybox se non è per impostazione predefinita.

Afferrare e spostare i cubi in modalità Play

  1. Selezionare il pulsante Riproduci . Quando la riproduzione del progetto viene avviata, la visualizzazione passa alla finestra Game.

    Screenshot of the Game window after entering Play mode.

    Nota

    Prima di eseguire la riproduzione, verificare che sia presente un set di profili valido in Project Impostazioni> MRTK3.

  2. Selezionare il pulsante a tre punti sopra l'angolo superiore destro della finestra Gioco e quindi fare clic su Ingrandisci.

    Screenshot of Maximize command for the Game window.

  3. Tenere premuta la barra spaziatrice per visualizzare la mano destra simulata nella visualizzazione.

  4. Spostare la mano simulata più vicina al cubo vicino fino a quando non tocca il cubo sul lato o sul fondo.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Fare clic sul pulsante sinistro del mouse (in questo modo la mano "afferra" il cubo), quindi trascinare il cubo intorno alla scena.

    Screenshot of Move the cube.

    Per afferrare e spostare il Far Cube, verrà usato il puntatore lontano collegato alla mano simulata.

  6. Se è necessario, tenere premuta di nuovo la barra spaziatrice per visualizzare la mano destra simulata. Si noti il puntatore lontano che si estende dall'estremità dell'indice della mano.

    Screenshot of simulated hand's far pointer.

  7. Spostare la mano più vicina al Far Cube, fino a visualizzare la punta del puntatore sul cubo. Potrebbe essere necessario spostare la mano in un movimento circolare alcune volte per far apparire la punta del puntatore sul cubo.

    Screenshot of the far pointer touching the cube.

  8. Fare clic sul pulsante sinistro del mouse (in questo modo la mano si chiude, prendendo quello che chiamiamo "movimento di avvicinamento delle dita"), quindi trascinare il cubo intorno alla scena.