Oefening: scripts voor handinteractie toevoegen aan een object

Voltooid

Het ObjectManipulator-script ondersteunt de modaliteit 'directe manipulatie' van het invoermodel 'hands and motion controllers'. Wanneer het script is gekoppeld aan een object, kan de gebruiker het object met hun handen verplaatsen, schalen of draaien. In deze oefening maakt u twee kubussen, koppelt u de benodigde scripts eraan en verplaatst u vervolgens de kubussen.

De eerste kubus toevoegen en aanpassen

  1. Selecteer GameObject>3D-objectkubus> in de menubalk.

    Screenshot of menu commands for adding the cube.

    De standaardgrootte van de kubus is één vierkante meter. Dit is te groot voor onze doeleinden. We schalen de grootte omlaag tot 20x20x20 cm.

  2. Selecteer de kubus en wijzig vervolgens in Inspector de waarden transformatie/schaal van de kubus in het volgende:

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

    De kubus is in de scène geplaatst op de standaardpositie (0,0,0). Dit betekent dat de kubus zich op dezelfde positie bevindt als de headset van de gebruiker en dat de gebruiker de kubus pas kan zien als ze achteruit gaan. We wijzigen de positiewaarden van de kubus, zodat deze zich op een betere locatie bevinden voor weergave.

  3. Wijzig in Inspector de waarden transformatie/positie van de kubus in het volgende:

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

    Screenshot of the cube's transform component after updates.

    We willen drie zijden van de kubus kunnen zien, dus we veranderen ook de draaiing van de kubus.

    Notitie

    De hoogte van de kubus is ingesteld op 1,6 zodat deze overeenkomt met de hoogte van de camera-offset op MRTK XR Rig, waardoor deze ongeveer op oogniveau wordt geplaatst.

  4. Wijzig in Inspector de tranform-/rotatiewaarden van de kubus in het volgende:

    X = 9, Y = 14, Z = 0

    Tip

    Als u wilt inzoomen op de kubus, selecteert u deze, houdt u de cursor boven het scènevenster en drukt u op de toets F. U kunt op deze manier inzoomen op elk object.

De scripts toevoegen aan de kubus

Als u wilt dat een object 'pakbaar' is met bijgehouden handen, moet er drie onderdelen aan zijn gekoppeld:

  • Een Collider-onderdeel (u hoeft hier niets te doen. De kubus van Unity heeft standaard al een Box Collider-bijlage)
  • Object Manipulator -onderdeel (Script)
  1. Terwijl de kubus nog steeds is geselecteerd, selecteert u in het venster Inspector de knop Component toevoegen en zoekt en selecteert u het script Object Manipulator .

    Screenshot of adding the Object Manipulator script.

    Het ObjectManipulator-script maakt een object beweegbaar, schaalbaar en draaibaar met één of twee handen. Wanneer u het Object Manipulator-script toevoegt, wordt het script Constraint Manager ook automatisch toegevoegd omdat het Object Manipulator-script hiervan afhankelijk is.

    Screenshot of the Constraint Manager script added to the cube.

Het materiaal van de kubus bijwerken

Voor prestatiedoeleinden is het raadzaam MRTK-materialen te gebruiken in plaats van de standaard Unity-materialen.

  1. Als de kubus nog steeds is geselecteerd, zoekt u de sectie 'Materialen' in het mesh renderer-onderdeel.
  2. Vervang het standaardmateriaal door het MRTK_Standard_White materiaal, dat zich onder MRTK Standard Assets>Materials bevindt.

Een tweede kubus toevoegen

  1. Klik in de hiërarchie met de rechtermuisknop op de kubus en selecteer Dupliceren. De gedupliceerde kubus wordt weergegeven met de naam Kubus (1).'

  2. Klik met de rechtermuisknop op de oorspronkelijke kubus, selecteer Naam wijzigen en geef de kubus de naam 'Near Cube'.

  3. Klik met de rechtermuisknop op de gedupliceerde kubus, selecteer Naam wijzigen en geef de kubus de naam 'Far Cube'.

    Op dit moment lijkt het erop dat er slechts één kubus in de scèneweergave staat. Dat komt doordat Near Cube en Far Cube zich op dezelfde exacte plaats bevinden. We gaan de positie en draaiing van Far Cube wijzigen.

  4. Als Far Cube nog steeds is geselecteerd, wijzigt u de waarden in het onderdeel Transformatie in het volgende:

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

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

    Nu ziet de camera bijna kubus aan de linkerkant en Far Cube een beetje verder weg aan de rechterkant. Als u dit wilt bevestigen, selecteert u in de hiërarchie de hoofdcamera (onder MRTK XR Rig>Camera Offset) en kijkt u vervolgens naar het hoofdcameravenster in het scènevenster.

    Screenshot of the Main Camera view in the Scene window.

    Tip

    Als u wilt dat de weergave in het scènevenster er meer uitziet zoals de camera ziet, bladert u in het scènevenster . Mogelijk moet u de Clear Flags van de camera instellen op Skybox als deze niet standaard is.

De kubussen in de afspeelmodus pakken en verplaatsen

  1. Selecteer de knop Afspelen. Wanneer het project wordt afgespeeld, schakelt de weergave over naar het gamevenster .

    Screenshot of the Game window after entering Play mode.

    Notitie

    Voordat u afspeelt, controleert u of er een geldige profielset is ingesteld onder Project Instellingen> MRTK3.

  2. Selecteer de knop met drie puntjes boven de rechterbovenhoek van het gamevenster en selecteer vervolgens Maximaliseren.

    Screenshot of Maximize command for the Game window.

  3. Druk op de spatiebalk om de gesimuleerde rechterhand in de weergave weer te geven.

  4. Verplaats de gesimuleerde hand dichter bij Near Cube totdat deze de kubus aan de zijkant of onderkant raakt.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Selecteer de linkermuisknop (hierdoor wordt de hand 'pak' de kubus) en sleept u de kubus rond de scène.

    Screenshot of Move the cube.

    Om Far Cube te pakken en te verplaatsen, gebruiken we de aanwijzer die aan de gesimuleerde hand is gekoppeld.

  6. Als dat nodig is, drukt u nogmaals op de spatiebalk om de gesimuleerde rechterhand weer te geven. Let op de verre aanwijzer die zich uitbreidt vanaf het einde van de indexvinger van de hand.

    Screenshot of simulated hand's far pointer.

  7. Beweeg de hand dichter bij Far Cube totdat u de punt van de aanwijzer op de kubus kunt zien. Mogelijk moet u de hand een paar keer in een cirkelvormige beweging bewegen om de punt van de aanwijzer op de kubus weer te geven.

    Screenshot of the far pointer touching the cube.

  8. Selecteer de linkermuisknop (hiermee sluit u de hand, neemt u de 'knijpbeweging' aan en sleept u de kubus rond de scène.

Unity in-editor invoersimulatie

U kunt holografisch objectgedrag testen met de invoersimulatiefuncties van Unity in de editor.

De weergave in de scène wijzigen

  • Als u de camera vooruit/links/terug/rechts wilt verplaatsen, drukt u op de W/A/S/D-toetsen.
  • Als u de camera verticaal wilt verplaatsen, drukt u op de Q- en E-toetsen.
  • Als u de camera wilt draaien, drukt u op de rechtermuisknop en sleept u.

Handinvoer simuleren

  • Als u de gesimuleerde rechterhand wilt inschakelen, houdt u de spatiebalk ingedrukt. Als u de hand wilt verwijderen, laat u de spatiebalk los.
  • Als u de gesimuleerde linkerhand wilt inschakelen, houdt u de shift-toets links ingedrukt. Als u de hand wilt verwijderen, laat u de sleutel los.
  • Als u een van beide hand rond de scène wilt bewegen, beweegt u de muis.
  • Als u de hand vooruit of achteruit wilt verplaatsen, draait u het muiswiel.
  • Als u het knijpbeweging wilt simuleren, selecteert u de linkermuisknop.
  • Als u de hand wilt draaien, houdt u de spatiebalk ingedrukt + Ctrl (rechterhand) of de shift-toets links + Ctrl (linkerhand) en beweegt u de muis.

Permanente handen

  • Als u een hand wilt inschakelen en op het scherm wilt houden zonder een toets ingedrukt te houden, drukt u op T (linkerhand) of Y (rechterhand). Als u de handen wilt verwijderen, drukt u nogmaals op die toetsen.

Uw toepassing bouwen in Unity

  1. Selecteer in de menubalk de optie File>Build Instellingen....

  2. Selecteer in het venster Build Instellingen de knop Open scènes toevoegen om uw huidige scène toe te voegen aan de lijst Scènes in build.

  3. Selecteer de knop Opbouwen .

  4. Navigeer in het venster Build Universeel Windows-platform naar de map waarin u de build wilt opslaan of maak een nieuwe map en navigeer ernaartoe en selecteer vervolgens de knop Map selecteren om het buildproces te starten.

    Screenshot of the location to save your build.

    Er wordt een voortgangsbalk weergegeven om u te laten weten hoe de build doorgaat.

(Optioneel) De toepassing bouwen en implementeren

Notitie

Bouwen en testen op HoloLens 2 is niet verplicht. U kunt ook testen op de HoloLens 2 Emulator als u geen apparaat hebt. Apparaten kunnen worden gekocht bij HoloLens.com.

  1. Wanneer het buildproces is voltooid, wordt Windows Bestandenverkenner geopend en wordt de buildmap weergegeven. Navigeer in de map en dubbelklik vervolgens op het oplossingsbestand om het te openen in Visual Studio:

    Screenshot of File Explorer with the builds folder displayed.

  2. Configureer Visual Studio voor HoloLens door de master- of releaseconfiguratie en de ARM64-architectuur te selecteren:

    Screenshot of Visual Studio window with the build options for the project.

    Tip

    Als u implementeert op HoloLens (eerste generatie), selecteert u de x86-architectuur .

    Notitie

    Als u 'Apparaat' niet ziet als doeloptie in Visual Studio, moet u mogelijk het opstartproject voor de oplossing wijzigen van het IL2CPP-project in het UWP-project. Hiervoor klikt u in Solution Explorer met de rechtermuisknop op [uw projectnaam](Universal Windows) en selecteert u Instellen als opstartproject.

    Belangrijk

    Voordat u op uw apparaat bouwt, moet het apparaat zich in de ontwikkelaarsmodus bevinden en zijn gekoppeld aan uw ontwikkelcomputer. Zie de sectie 'Ontwikkelaarsmodus inschakelen' op deze pagina.

  3. Selecteer de vervolgkeuzelijst voor het implementatiedoel en voer vervolgens een van de volgende handelingen uit:

    • Als u via Wi-Fi bouwt en implementeert, selecteert u Externe machine.

    Screenshot of Visual Studio window with Remote Machine as the target.

    • Als u via USB bouwt en implementeert, selecteert u Apparaat.

    Screenshot of Visual Studio window with Device as the target.

  4. Stel de externe verbinding in: selecteer Projecteigenschappen >op de menubalk.

  5. Selecteer in het venster Eigenschappenpagina's van het project de foutopsporing van configuratie-eigenschappen>.

  6. Selecteer het foutopsporingsprogramma om de vervolgkeuzelijst te starten en selecteer vervolgens Externe machine als deze nog niet is geselecteerd.

    Belangrijk

    U wordt aangeraden uw IP-adres handmatig in te voeren in plaats van afhankelijk te zijn van de functie Automatisch gedetecteerd. Als u uw IP-adres wilt vinden, gaat u op uw HoloLens naar Instellingen > Updates en beveiliging > voor ontwikkelaars. Het IP-adres wordt onderaan het venster onder Ethernet weergegeven.

  7. Voer in het veld Computernaam het IP-adres van uw apparaat in.

    Remote connection dialog in Visual Studio

  8. Stel de verificatiemodus in op Universeel (niet-versleuteld protocol).

  9. Verbinding maken uw HoloLens op uw computer en voer vervolgens in Visual Studio een van de volgende handelingen uit:

    • Als u wilt implementeren op uw HoloLens en de app automatisch wilt starten zonder het gekoppelde Visual Studio-foutopsporingsprogramma, selecteert u Foutopsporing>starten zonder foutopsporing.
    • Als u wilt implementeren op uw HoloLens zonder dat de app automatisch wordt gestart, selecteert u Build>Deploy Solution.

    Screenshot of Visual Studio with the Start Without Debugging menu item displayed.

Uw apparaat koppelen

De eerste keer dat u een app op uw HoloLens implementeert vanaf uw pc, wordt u gevraagd om een pincode. Een pincode maken:

  1. Ga in uw HoloLens naar Instellingen > Updates en beveiliging > voor ontwikkelaars.
  2. Selecteer Koppelen. Hiermee wordt de pincode weergegeven in de HoloLens.
  3. Voer de pincode in het dialoogvenster in Visual Studio in.
  4. Nadat het koppelen is voltooid, selecteert u Gereed in de HoloLens.

Uw pc is nu gekoppeld aan uw HoloLens en u kunt apps automatisch implementeren. Herhaal deze stappen voor elke pc die wordt gebruikt voor het implementeren van apps op uw HoloLens.

Uw app uitvoeren op uw HoloLens

  1. Nadat de app is gebouwd, zoekt u in het startmenu van HoloLens de app-tegel voor uw app en selecteert u deze.

  2. Nadat de app is gestart, neemt u contact op met de Near Cube en sleept u deze.

  3. Gebruik de verwijzer om de Far Cube te pakken en sleep deze vervolgens rond.

    Tip

    De HoloLens biedt u meer flexibiliteit dan toen u uw app in Unity testte. U kunt fysiek bewegen en de verre aanwijzer op de Near Cube gebruiken of de Far Cube met uw hand pakken.

Tips

  • U kunt ook implementeren in de HoloLens Emulator of een app-pakket maken voor sideloading.

  • Mogelijk ziet u de diagnostische profiler in de app. U kunt deze in- of uitschakelen met behulp van de spraakopdracht 'Diagnostische gegevens in-/uitschakelen'. U wordt aangeraden de profiler de meeste tijd tijdens de ontwikkeling zichtbaar te houden, zodat u kunt begrijpen hoe wijzigingen in de app van invloed kunnen zijn op de prestaties. U kunt uw app bijvoorbeeld controleren om ervoor te zorgen dat de framesnelheid ten minste 60 FPS is.