Oefening: intelligente objectplaatsingen maken met oplossers
Oplossers zijn een van de onderdelen van de Mixed Reality Toolkit (MRTK). Laten we eens kijken naar twee soorten oplossers en hun respectieve functionaliteiten.
Locatie van oplossers in de MRTK
De oplossers van MRTK bevinden zich in de map MRTK SDK. Als u de beschikbare oplossers in uw project wilt zien, gaat u in het venster Project naar Pakketten>MRTK Spatial Manipulation>Solvers.
De oplosser voor richtingsindicatoren
Gebruik de oplosser directionele indicator om de gebruiker naar objecten te leiden. U doet dit als volgt:
Ga in het venster Project naar MRTK voor assets>. Tutorials.GettingStarted>Prefabs. Sleep de Chevron-prefab naar het hiërarchievenster en stel de positie van de transformatie in op X = 0, Y = 1,5, Z = 2 om deze in de buurt van het RoverExplorer-object te plaatsen.
Wijzig de naam van het zojuist toegevoegde punthaakobject in Indicator. Selecteer vervolgens in het venster Inspector de optie Component toevoegen om de DirectionalIndicator toe te voegen.
Configureer de onderdelen DirectionalIndicator en SolverHandler als volgt:
a. Controleer of het bijgehouden doeltype van het onderdeel OplosserHandler is ingesteld op Head.
b. Wijs de RoverExplorer toe aan het DirectionalIndicator-onderdeel Directional Target door het vanuit de hiërarchie naar het veld Geen (Transformatie) te slepen.
c. Wijzig de weergaveverschil in 0,2.
Druk op Play om de gamemodus te openen. Houd de rechtermuisknop ingedrukt terwijl u de muis naar links of rechts beweegt om de richting van uw blik te draaien.
U ziet dat wanneer u wegkijkt van het RoverExplorer-object , het indicatorobject wordt weergegeven en wijst naar het RoverExplorer-object .
De Tap To Place oplosser
Gebruik de Tap To Place oplosser om objecten te verplaatsen. U doet dit als volgt:
Selecteer in het venster Hierarchy het RoverExplorer>RoverAssembly-object. Gebruik vervolgens in Inspector Component toevoegen om het onderdeel Tap To Place toe te voegen. Configureer het onderdeel als volgt:
a. Controleer of het bijgehouden doeltype van het onderdeel OplosserHandler is ingesteld op Head.
b. Schakel Het selectievakje Standaard Surface Normal Offset gebruiken uit en zorg ervoor dat Surface Normal Offset is ingesteld op 0.
c. Schakel het selectievakje Verticaal stand houden in.
Gebruik vervolgens Component toevoegen om het component Stateful Interactable toe te voegen. Zoek in het venster Inspector de gebeurtenis On Clicked (). Selecteer het + pictogram om een nieuwe gebeurtenis toe te voegen. Configureer de gebeurtenis als volgt:
a. Wijs het RoverAssembly-object toe als listener voor de gebeurtenis On Clicked () door het vanuit de hiërarchie naar het veld Geen (Object) te slepen.
b. Selecteer in de vervolgkeuzelijst Geen functie TapToPlace>StartPlacement() om deze methode aan te roepen wanneer de gebeurtenis wordt geactiveerd.
Als het RoverAssembly-object nog steeds is geselecteerd in het venster Hierarchy, zoekt u in het venster Inspector de gebeurtenis On Placing Started (). Selecteer het + pictogram om een nieuwe gebeurtenis toe te voegen.
Configureer de gebeurtenis als volgt:
a. Wijs het RoverAssembly-object toe als listener voor de gebeurtenis On Placing Started () door het vanuit de hiërarchie naar het veld Geen (Object) te slepen.
b. Selecteer in de vervolgkeuzelijst Geen functie TapToPlace>float SurfaceNormalOffset om de eigenschapswaarde SurfaceNormalOffset bij te werken wanneer de gebeurtenis wordt geactiveerd.
c. Controleer of het argument is ingesteld op 0.
Klik in de hiërarchie met de rechtermuisknop op een lege plek. Selecteer 3D-objectkubus> om een tijdelijk object te maken dat de grond vertegenwoordigt en configureer het onderdeel Transformeren als volgt:
- Positie: X = 0, Y = 0,15, Z = 6
- Draaiing: X = 0, Y = 0, Z = 0
- Schaal: X = 10, Y = 0,2, Z = 10
Druk op Play om de gamemodus te openen. Houd vervolgens de rechtermuisknop ingedrukt terwijl u de muis omlaag beweegt, totdat het staren het RoverAssembly-object raakt.
Houd de spatiebalk ingedrukt en klik op de linkermuisknop om een luchttik uit te voeren en start het tap-to-place proces.
Houd de rechtermuisknop ingedrukt terwijl u de muis naar links of rechts beweegt om de richting van uw blik te draaien. Als u tevreden bent met de plaatsing, houdt u de spatiebalk ingedrukt en klikt u op de linkermuisknop om een eindluchttik uit te voeren.
Wanneer u klaar bent met het testen van de functie in de gamemodus , klikt u met de rechtermuisknop op het kubusobject en selecteert u Verwijderen om deze uit de scène te verwijderen.