Oefening: intelligente objectplaatsingen maken met oplossers

Voltooid

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.

Schermopname van de locatie van de map oplossers.

De oplosser voor richtingsindicatoren

Gebruik de oplosser directionele indicator om de gebruiker naar objecten te leiden. U doet dit als volgt:

  1. 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.

    Schermopname van de zojuist toegevoegde Chevron-prefab.

  2. 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.

    Schermopname van het onderdeel DirectionalIndicator oplosser toegevoegd.

  3. 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.

    Schermopname van het onderdeel DirectionalIndicator solver geconfigureerd.

  4. 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 .

    Schermopname van de gesplitste afspeelmodus met DirectionalIndicator oplosser in gebruik.

De Tap To Place oplosser

Gebruik de Tap To Place oplosser om objecten te verplaatsen. U doet dit als volgt:

  1. 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.

    Schermopname van het onderdeel Tap To Place oplosser toegevoegd en geconfigureerd.

  2. 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.

    Schermopname van de geconfigureerde gebeurtenis Tap To Place On Placing Started.

  3. 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.

    Schermopname van de toegevoegde gebeurtenis Tap To Place On Placing Started.

  4. 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.

    Schermopname van de geconfigureerde gebeurtenis Tap To Place On Placing Started.

  5. 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

    Schermopname van het tijdelijke gemalen kubusobject dat is toegevoegd en geplaatst.

  6. 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.

    Schermopname van de gesplitste afspeelmodus, met een blik op het RoverAssembly-object.

  7. Houd de spatiebalk ingedrukt en klik op de linkermuisknop om een luchttik uit te voeren en start het tap-to-place proces.

    Schermopname van de gesplitste afspeelmodus, waarbij het plaatsen is gestart.

  8. 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.

    Schermopname van de gesplitste afspeelmodus, waarbij het plaatsen is beëindigd.

  9. 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.

    Schermopname die laat zien hoe u de tijdelijke grondkubus verwijdert.