Övning – Skapa intelligenta objektplaceringar med lösare
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.
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:
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.
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.
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.
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.
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:
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.
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.
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.
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.
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
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 .
Håll blankstegsfältet och klicka på den vänstra musknappen för att göra en lufttryckning och starta tryck-till-plats-processen.
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.
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.