Övning – Lägga till skript för handinteraktion i ett objekt

Slutförd

ObjectManipulator-skriptet stöder "direkt manipulation" av indatamodellen "händer och rörelsekontrollanter". När skriptet är kopplat till ett objekt kan användaren flytta, skala eller rotera objektet med händerna. I den här övningen skapar du två kuber, kopplar de nödvändiga skripten till dem och flyttar sedan runt kuberna.

Lägg till och justera den första kuben

  1. I menyraden väljer du GameObject>3D Object>Cube.

    Skärmbild av menykommandon för att lägga till kuben.

    Kubens standardstorlek är en kvadratmeter, som är för stor för våra syften. Vi skalar ned storleken till 20x20x20 centimeter.

  2. Välj kuben och ändra sedan kubens transformerings-/skalningsvärden till följande i Inspector:

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

    Kuben placerades i scenen vid standardpositionen (0,0,0). Det innebär att kuben är i samma position som användarens headset och att användaren inte kan se kuben förrän den flyttas bakåt. Vi ändrar kubens positionsvärden så att den är på en bättre plats för visning.

  3. I Inspector ändrar du kubens transformerings-/positionsvärden till följande:

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

    Skärmbild av kubens transformeringskomponent efter uppdateringar.

    Vi vill kunna se tre sidor av kuben, så vi ändrar även kubens rotation.

    Kommentar

    Kubens höjd är inställd på 1,6 för att matcha höjden på kameraförskjutningenMRTK XR Rig, vilket placerar den ungefär på ögonnivå.

  4. I Inspector ändrar du kubens Tranform/Rotation-värden till följande:

    X = 9, Y = 14, Z = 0 f

    Dricks

    Om du vill zooma in på kuben markerar du den, kontrollerar att markören hovrar över fönstret Scen och trycker sedan på F-tangenten. Du kan zooma in på valfritt objekt på det här sättet.

Lägg till skripten i kuben

För att ett objekt ska vara "greppbart" med spårade händer måste det ha två komponenter anslutna:

  • En Collider-komponent (du behöver inte göra något här; Unitys kub har redan en Box Collider kopplad som standard)
  • Komponent för objektmanipulatör (skript)
  1. När kuben fortfarande är markerad väljer du knappen Lägg till komponent i fönstret Inspector och söker sedan efter och väljer skriptet Object Manipulator.

    Skärmbild av att lägga till skriptet Object Manipulator.

    ObjectManipulator-skriptet gör ett objekt flyttbart, skalbart och roterbart med en eller två händer. När du lägger till skriptet Object Manipulator läggs även Constraint Manager-skriptet till automatiskt eftersom skriptet Object Manipulator är beroende av det.

    Skärmbild av skriptet Constraint Manager som lagts till i kuben.

Uppdatera kubens material

I prestandasyfte rekommenderar vi att du använder MRTK-material i stället för standardmaterialet för Unity.

  1. När kuben fortfarande är markerad letar du reda på avsnittet Material i Mesh Renderer-komponenten.
  2. Ersätt standardmaterialet med det MRTK_Standard_White materialet som finns under MRTK Standard Assets>Materials. Du kan dra och släppa materialet från projektfönstret till avsnittet Material .

Lägg till en andra kub

  1. Högerklicka på kuben i hierarkin och välj Duplicera. Den duplicerade kuben visas med namnet Cube (1).

  2. Högerklicka på den ursprungliga kuben, välj Byt namn och ge kuben namnet Near Cube.

  3. Högerklicka på den duplicerade kuben, välj Byt namn och ge kuben namnet Far Cube.

    Just nu ser det ut som om det bara finns en kub i scenvyn. Det beror på att Near Cube och Far Cube är på samma exakta plats. Vi ändrar Far Cubes position och rotation.

  4. När Far Cube fortfarande är markerat ändrar du dess värden i transformeringskomponenten till följande:

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

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

    Nu ska kameran se Near Cube till vänster och Far Cube lite längre bort till höger. Bekräfta detta genom att i hierarkin välja Main Camera (under MRTK XR Rig>Camera Offset) och sedan titta på main camera-fönstret i fönstret Scen.

    Skärmbild av huvudkameravyn i fönstret Scen.

    Dricks

    Om du vill att vyn i fönstret Scen ska se ut mer som vad kameran ser, bläddrar du runt i fönstret Scen . Du kan behöva ställa in kamerans Clear FlagsSkybox om den inte är det som standard.

Hämta och flytta kuberna i uppspelningsläge

  1. Välj knappen Spela upp. När projektet börjar spelas upp växlar vyn till spelfönstret.

    Skärmbild av spelfönstret när du har angett Uppspelningsläge.

    Kommentar

    Innan du spelar bekräftar du att det finns en giltig profiluppsättning under Projektinställningar>MRTK3.

  2. Välj knappen med tre punkter i det övre högra hörnet i spelfönstret och välj Maximera.

    Skärmbild av kommandot Maximera för spelfönstret.

  3. Tryck på blankstegsfältet för att få den simulerade högra handen att visas i vyn.

  4. Flytta den simulerade handen närmare Nära kub tills den rör kuben på sidan eller undersidan.

    Skärmbild av den simulerade högra handen som rör nära kuben.

  5. Tryck på den vänstra musknappen (detta gör att handen "griper" kuben) och drar kuben runt scenen.

    Skärmbild av Flytta kuben.

    För att hämta och flytta Far Cube använder vi den bortre pekaren som är kopplad till den simulerade handen.

  6. Om du behöver det trycker du på blankstegsfältet igen för att få den simulerade högra handen att visas. Observera den långt pekare som sträcker sig från slutet av handens pekfinger.

    Skärmbild av den simulerade handens långpekare.

  7. Flytta handen närmare Far Cube tills du kan se spetsen på pekaren på kuben. Du kan behöva flytta runt handen i en cirkelrörelse några gånger för att få pekarspetsen att visas på kuben.

    Skärmbild av den bortre pekaren som rör kuben.

  8. Tryck på den vänstra musknappen (detta gör att handen stängs, tar på vad vi kallar nypningsgesten) och drar kuben runt scenen.

Unity-redigeraren för indatasimulering

Du kan testa beteendet för holografiska objekt med indatasimuleringsfunktionerna i Unity i redigeraren.

Ändra vyn i scenen

  • Tryck på W/A/S/D-tangenterna för att flytta kameran framåt/vänster/bakåt/höger.
  • Om du vill flytta kameran lodrätt trycker du på Q- och E-tangenterna.
  • Om du vill rotera kameran trycker du på höger musknapp och drar sedan.

Simulera handindata

  • Om du vill aktivera den simulerade högra handen trycker du på och håller i blankstegsfältet. Om du vill ta bort handen släpper du blankstegsfältet.
  • Om du vill aktivera den vänstra simulerade handen trycker du på och håller ned den vänstra skiftnyckeln . Om du vill ta bort handen släpper du nyckeln.
  • Flytta musen för att flytta endera handen runt scenen.
  • Om du vill flytta handen framåt eller bakåt roterar du musrullningshjulet.
  • Om du vill simulera nypningsgesten trycker du på vänster musknapp.
  • Om du vill rotera handen trycker du och håller ned blankstegstangenten + CTRL (höger hand) eller vänster skiftnyckel + CTRL-tangent (vänster hand) och flyttar sedan musen.

Beständiga händer

Om du vill aktivera en hand och behålla den på skärmen utan att fortsätta hålla ned en nyckel trycker du på T (vänster hand) eller Y (höger hand). Tryck på tangenterna igen om du vill ta bort händerna.

Skapa ditt program i Unity

  1. Minimera uppspelningsfönstret genom att välja knappen med tre punkter och sedan avmarkera Maximera.

  2. I menyraden väljer du Inställningar för filbygge>....

  3. I fönstret Bygginställningar väljer du knappen Lägg till öppna scener för att lägga till din aktuella scen i listan Scener i build .

  4. Välj knappen Skapa.

  5. I fönstret Skapa Universell Windows-plattform navigerar du till mappen där du vill lagra bygget eller skapar en ny mapp och navigerar till den och väljer sedan knappen Välj mapp för att starta byggprocessen.

    Skärmbild av platsen där bygget ska sparas.

    En förloppsindikator verkar låta dig veta hur bygget fortsätter.

(Valfritt) Skapa och distribuera programmet

Kommentar

Det är inte obligatoriskt att skapa och testa på HoloLens 2. Du kan också testa holoLens 2-emulatorn om du inte har någon enhet. Du kan köpa enheter på HoloLens.com.

  1. När byggprocessen har slutförts öppnas Windows Utforskaren och visar byggmappen. Navigera i mappen och dubbelklicka på lösningsfilen för att öppna den i Visual Studio.

    Skärmbild av Utforskaren med mappen builds som visas.

  2. Konfigurera Visual Studio för HoloLens genom att välja huvud- eller versionskonfigurationen och ARM64-arkitekturen:

    Skärmbild av Visual Studio-fönstret med byggalternativen för projektet.

    Dricks

    Om du distribuerar till HoloLens (första generationen) väljer du x86-arkitekturen.

    Kommentar

    Om du inte ser enhet som ett målalternativ i Visual Studio kan du behöva ändra startprojektet för lösningen från IL2CPP-projektet till UWP-projektet . I Solution Explorer högerklickar du på [ditt projektnamn](Universella Windows) och väljer Ange som StartUp-projekt.

    Viktigt!

    Innan du skapar till enheten måste enheten vara i utvecklarläge och paras ihop med utvecklingsdatorn.; se Aktivera utvecklarläge.

  3. Välj listrutan distributionsmål och gör sedan något av följande:

    • Om du skapar och distribuerar via Wi-Fi väljer du Fjärrdator.

    Skärmbild av Visual Studio-fönstret med fjärrdatorn som mål.

    • Om du skapar och distribuerar via USB väljer du Enhet.

    Skärmbild av Visual Studio-fönstret med Enheten som mål.

  4. Ställ in fjärranslutningen: Välj Projektegenskaper > på menyraden.

  5. I projektets egenskapssidor väljer du Felsökning av konfigurationsegenskaper>.

  6. Välj felsökningsprogrammet för att starta listrutan och välj sedan Fjärrdator om den inte redan har valts.

    Viktigt!

    Vi rekommenderar att du anger din IP-adress manuellt i stället för att vara beroende av funktionen "Identifierad automatiskt". Om du vill hitta din IP-adress går du till Inställningar > uppdateringar och säkerhet > för utvecklare på HoloLens. IP-adressen visas längst ned i fönstret under Ethernet.

  7. I fältet Datornamn anger du enhetens IP-adress.

    Skärmbild av dialogrutan Fjärranslutning i Visual Studio.

  8. Ange autentiseringsläget till Universellt (okrypterat protokoll).

  9. Anslut HoloLens till datorn och gör sedan något av följande i Visual Studio:

    • Om du vill distribuera till HoloLens och starta appen automatiskt utan att Visual Studio-felsökningsprogrammet är kopplat väljer du Felsöka>Starta utan felsökning.
    • Om du vill distribuera till HoloLens utan att appen startas automatiskt väljer du Skapa>distributionslösning.

    Skärmbild av Visual Studio med menyalternativet Starta utan felsökning.

Parkoppling av enheten

Första gången du distribuerar en app till HoloLens från datorn uppmanas du att ange en PIN-kod. Så här skapar du en PIN-kod:

  1. I HoloLens går du till Inställningar > uppdateringar och säkerhet > för utvecklare.
  2. Välj Par. Detta visar PIN-koden i HoloLens.
  3. Ange PIN-koden i dialogrutan i Visual Studio.
  4. När parkopplingen är klar väljer du Klar i HoloLens.

Datorn är nu kopplad till HoloLens och du kan distribuera appar automatiskt. Upprepa de här stegen för varje dator som används för att distribuera appar till dina HoloLens.

Köra din app på HoloLens

  1. När din app har skapats letar du upp apppanelen för din app på Start-menyn HoloLens och väljer den sedan.

  2. När appen har startat kontaktar du Near Cube och tar sedan tag i den och drar runt den.

  3. Använd den längsta pekaren för att hämta Far Cube och dra den sedan runt.

    Dricks

    HoloLens ger dig större flexibilitet än när du testade din app i Unity. Du kan fysiskt flytta runt och använda långt pekaren på Near Cube eller nå ut och ta tag i Far Cube med din hand!

Tips

  • Du kan också distribuera till HoloLens-emulatorn eller skapa ett apppaket för separat inläsning.

  • Du kanske märker diagnostikprofileraren i appen. Du kan aktivera eller inaktivera det med hjälp av talkommandot Växla diagnostik. Vi rekommenderar att du håller profileraren synlig för det mesta under utvecklingen så att du kan förstå hur ändringar i appen kan påverka prestanda. Du kan till exempel övervaka din app för att säkerställa att bildfrekvensen är minst 60 FPS.