Övning – Skapa intelligenta objektplaceringar med lösare

Slutförd

Lösare är en av komponenterna i Mixed Reality Toolkit (MRTK). Låt oss ta en titt på två typer av lösare och deras respektive funktioner.

Plats för lösare i MRTK

MRTK:s lösare finns i mappen MRTK SDK. Om du vill se tillgängliga lösare i projektet går du till >>Solvers i projektfönstret.

Skärmbild som visar platsen för mappen solvers.

Lösningslösaren för riktningsindikator

Använd lösningslösaren För riktningsindikator för att dirigera användaren till objekt. Så här gör du:

  1. I fönstret Projekt går du till Tillgångar>MRTK. Tutorials.GettingStarted>Prefabs. Dra Chevron-prefab till hierarkifönstret och ange dess transformeringsposition till X = 0, Y = 1,5, Z = 2 för att placera den nära RoverExplorer-objektet.

    Skärmbild som visar den nyligen tillagda Chevron-prefab som valts.

  2. Byt namn på det nyligen tillagda Chevron-objektet till Indikator. I fönstret Inspector väljer du Sedan Lägg till komponent för att lägga till DirectionalIndicator.

    Skärmbild som visar komponenten DirectionalIndicator solver tillagd.

  3. Konfigurera komponenterna DirectionalIndicator och SolverHandler på följande sätt:

    a. Kontrollera att SolverHandler-komponentens spårade måltyp är inställd på Huvud.

    b. Tilldela RoverExplorer till DirectionalIndicator-komponentens riktningsmål genom att dra den från hierarkin till fältet Ingen (transformering).

    c. Ändra visningsförskjutning till 0,2.

    Skärmbild som visar komponenten DirectionalIndicator solver konfigurerad.

  4. Tryck på Spela om du vill ange spelläge. Tryck och håll den högra musknappen medan du flyttar musen till vänster eller höger för att rotera blickriktningen.

    Observera att när du tittar bort från RoverExplorer-objektet visas indikatorobjektetoch pekar mot RoverExplorer-objektet.

    Skärmbild som visar delningsvyn Uppspelningsläge med DirectionalIndicator-lösaren som används.

Lösen för att trycka på plats

Använd lösningslösningen Tryck för att placera om objekt. Så här gör du:

  1. I hierarkifönstret väljer du RoverExplorer>RoverAssembly-objektet. I Inspector använder du sedan Lägg till komponent för att lägga till komponenten Tryck på plats. Konfigurera komponenten på följande sätt:

    a. Kontrollera att SolverHandler-komponentens spårade måltyp är inställd på Huvud.

    b. Avmarkera Använd standard surface normal offset och kontrollera att Surface Normal Offset är inställt på 0.

    c. Markera kryssrutan Behåll lodrät orientering.

    Skärmbild som visar komponenten Tryck på för att placera lösningskomponenten som har lagts till och konfigurerats.

  2. Använd sedan Lägg till komponent för att lägga till komponenten Stateful Interactable. Leta reda på händelsen På klickad () i fönstret Kontroll. + Välj ikonen för att lägga till en ny händelse. Konfigurera händelsen enligt följande:

    a. Tilldela RoverAssembly-objektet som lyssnare för händelsen Klickad () genom att dra det från hierarkin till fältet Inget (objekt).

    b. I listrutan Ingen funktion väljer du TapToPlace>StartPlacement() för att anropa den här metoden när händelsen utlöses.

    Skärmbild som visar den konfigurerade händelsen Tryck på plats vid placering startad.

  3. Med RoverAssembly-objektet fortfarande markerat i hierarkifönstret letar du upp händelsen Vid placering startad () i fönstret Kontroll. + Välj ikonen för att lägga till en ny händelse.

    Skärmbild som visar händelsen Tryck på för att placera vid start tillagd.

  4. Konfigurera händelsen enligt följande:

    a. Tilldela RoverAssembly-objektet som lyssnare för händelsen Startad () vid placering genom att dra det från hierarkin till fältet Ingen (objekt).

    b. I listrutan Ingen funktion väljer du TapToPlace>float SurfaceNormalOffset för att uppdatera egenskapsvärdet SurfaceNormalOffset när händelsen utlöses.

    c. Kontrollera att argumentet är inställt på 0.

    Skärmbild som visar den konfigurerade händelsen Tryck på plats vid placering startad.

  5. Högerklicka på en tom plats i Hierarki. Välj 3D-objektkub>för att skapa ett tillfälligt objekt som representerar marken och konfigurera transformeringskomponenten på följande sätt:

    • Position: X = 0, Y = 0,15, Z = 6
    • Rotation: X = 0, Y = 0, Z = 0
    • Skala: X = 10, Y = 0,2, Z = 10

    Skärmbild som visar det temporära markkubobjektet som lagts till och placerats.

  6. Tryck på Spela om du vill ange spelläge. Tryck sedan på och håll den högra musknappen medan du flyttar musen nedåt tills blicken träffar RoverAssembly-objektet .

    Skärmbild som visar delningsvyn Uppspelningsläge med blick som träffar RoverAssembly-objektet.

  7. Håll blankstegsfältet och klicka på den vänstra musknappen för att göra en lufttryckning och starta tryck-till-plats-processen.

    Skärmbild som visar delningsvyn Uppspelningsläge med start.

  8. Tryck och håll den högra musknappen medan du flyttar musen till vänster eller höger för att rotera blickriktningen. När du är nöjd med placeringen håller du blankstegsfältet och klickar på den vänstra musknappen för att göra ett avslutande lufttryck.

    Skärmbild som visar delningsvyn Uppspelningsläge med slutplacering.

  9. När du är klar med att testa funktionen i spelläge högerklickar du på kubobjektet och väljer Ta bort för att ta bort den från scenen.

    Skärmbild som visar hur du tar bort den tillfälliga markkuben.