Övning – Lägg till handinteraktion med objectmanipulator
ObjectManipulator-skriptet stöder direkt manipulationsmodalitet för indatamodellen för 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
I menyraden väljer du GameObject>3D Object>Cube.
Kubens standardstorlek är en kubikmeter, som är för stor för våra syften. Vi skalar ned storleken till 20 kubikcentikmeter.
Välj kuben och ändra sedan kubens skalningsvärden i avsnittet Transformera 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.
I Inspector ändrar du kubens positionsvärden i avsnittet Transformera till följande:
X = -0,2, Y = 1,6, Z = 0,5
Vi vill kunna se tre sidor av kuben, så vi ändrar även kubens rotation.
I Inspector ändrar du kubens rotationsvärden i transformeringsavsnittsvärdena till följande:
X = 9, Y = 14, Z = 0
Dricks
Om du vill zooma in på kuben markerar du den, kontrollerar att markören hovrar över fönstret Scen och trycker 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 tre 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)
- Objektmanipulatörskomponent (skript)
- Constraint Manager-komponent (skript)
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.
Skriptet Object Manipulator gör ett objekt flyttbart, skalbart och roterande 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.
Uppdatera kubens material
I prestandasyfte rekommenderar vi att du använder MRTK-material i stället för standardmaterialet för Unity.
- När kuben fortfarande är markerad letar du upp och expanderar avsnittet Material i Mesh Renderer-komponenten.
- Ersätt standardmaterialet med det MRTK_Standard_White materialet som finns under MRTK Standard Assets>Materials. Du kan göra detta genom att dra materialet direkt till fältet Element i avsnittet Material
Lägg till en andra kub
Högerklicka på kuben i hierarkin och välj Duplicera. Den duplicerade kuben visas med namnet Cube (1).
Högerklicka på den ursprungliga kuben, välj Byt namn och ge kuben namnet Near Cube.
Högerklicka på den duplicerade kuben, välj Byt namn och namnge sedan kuben 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.
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 Kamera (under MRTK XR Rig> Kamera Offset) och titta sedan på fönstret Main Kamera 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 Flags på Skybox om den inte är det som standard.
Hämta och flytta kuberna i uppspelningsläge
Välj knappen Spela upp. När projektet börjar spelas upp växlar vyn till spelfönstret.
Kommentar
Innan du spelar bekräftar du att det finns en giltig profiluppsättning under Project Inställningar> MRTK3.
Välj knappen med tre punkter ovanför det övre högra hörnet i spelfönstret och välj sedan Maximera.
Tryck på och håll ned blankstegsfältet så att den simulerade högra handen visas i vyn.
Flytta den simulerade handen närmare nära kuben tills den rör kuben på sidan eller nederkanten.
Klicka på den vänstra musknappen (detta gör att handen "hämtar" kuben) och dra sedan kuben runt scenen.
För att hämta och flytta Far Cube använder vi den bortre pekaren som är kopplad till den simulerade handen.
Om du behöver det trycker du på och håller ned 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.
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.
Klicka på den vänstra musknappen (detta gör att handen stängs, tar på vad vi kallar "nypgesten"), och dra sedan kuben runt scenen.