Dela via


Greppa, hålla och kasta med interactables

Översikt

Mesh Interactables är ett system för att konfigurera objekt med Unity-skript som definierar interaktion med ett objekt eller avatarbeteende vid körning. Skripten definierar egenskaperna för det objekt som kan interageras med med XRI-interagerare. Mesh-verktygslådan innehåller skript av olika objekttyper som kan definieras. När ett projekt körs konfigureras alla nödvändiga prefabs och inställningar som krävs för att objekt eller avataren ska fungera enligt definitionen. Om du vill se en ungefärlig förhandsgranskning av hur dina interaktionsbara objekt kommer att se ut och kännas när de körs i Mesh-appen måste du konfigurera Uppspelningsläge med Mesh-emulering. Observera att IK-funktionerna som visas i Mesh-appen inte är tillgängliga i uppspelningsläge med Mesh-emulering.

Mesh-komponenten för interaktionsbar installation

Om du vill göra ett objekt interaktionsbart måste du lägga till mesh-komponenten För interaktionsbar installation .

  1. I hierarkin väljer du objektet.
  2. Klicka på knappen Lägg till komponent i Inspector och välj sedan Mesh Interactable Setup (Interaktionsbar installation).

En skärmbild av dialogrutan Lägg till komponent med komponenten Interaktionsbar mesh-konfiguration.

Komponenten läggs till och med dess standardegenskap för objekttyp inställd på Interaktionsbar. (Objekttyper förklaras i nästa avsnitt.)

En skärmbild av mesh-komponenten för interaktionsbar installation med objekttyp inställd på Interaktionsbar.

Egenskaperna för en grupp med objekt som alla beter sig på samma sätt kan konfigureras med en överordnad Mesh-komponent för interaktionsbar installation . Egenskaperna tillämpas på alla underordnade objekt med stela kroppar vid körning genom att automatiskt lägga till en Mesh Interactable Body-komponent till varje underordnat objekt. Du kanske vill lägga till mesh-interaktionsbar brödtext manuellt för att använda Mesh-interaktionsbara objekt med visuella skript, till exempel med interaktionshändelser eller för att ändra den manipulerbara måltransformeringen via det visuella skriptet.

En skärmbild av mesh-komponenten Interaktionsbar brödtext.

Anteckningar:

  • Mesh Interactable Body gör att varje interaktionsbar kropp kan bete sig oberoende av varandra.

  • En rigidbody måste läggas till i ett objekt om du vill att det ska vara fysikaktiverat.

Interaktionsbara objekttyper

Det finns fyra objekttyper:

  • Interaktionsbar
  • Bökbart
  • Utrustningsbar
  • Kastbar

Så här väljer du en objekttyp:

  • I komponenten Interaktionsbar mesh klickar du på listrutan Objekttyp och väljer sedan något av de fyra alternativen.

En skärmbild av menyalternativen Objekttyp i mesh-komponenten Interaktionsbar brödtext.

Interaktionsbar

Som nämnts ovan är detta standardtypen och den mest grundläggande. Det ger dig åtkomst till motringningar som kan anropas när användaren hovrar över eller väljer det objekt som du kan få andra skript att reagera på. Om du till exempel har en knapp som du vill använda för att aktivera ett annat objekt lägger du till den här typen i objektet med ett OnSelected-återanrop för att aktivera det andra objektet. Knappen kommer att vara helt interagerande bara genom att lägga till den här typen och en kolliderare; Du behöver inte göra något annat.

Bökbart

Ett objekt av den här typen kan få sin transformering manipulerad vid körning och flyttas genom rymden i slutet av en interaktionsstråle. Genvägskontroller är tillgängliga för att rotera eller översätta objektet. För manipulering av objekt i Mesh-appen kan du aktivera IK-inställningar för avatarhanden för att följa objektet. Manipulerbara objekt kräver inte en rigidbody, men du bör lägga till en om du vill att objekten ska ha fysikfunktioner.

En skärmdump av en Mesh-upplevelse med en kaffekanna som manipuleras.

Utrustningsbar

Ett objekt av den här typen bifogas din avatars hand. Pc-kontrollerna för utrustning klickar på objektet eller trycker på "F" medan objektet är markerat. Quest-kontrollerna för utrustning trycker på "Grip"-knappen medan objektet väljs. Utrustningsbara objekt innehåller inställningar för IK-mål för din avatars armposition medan objektet är utrustat. IK-målen är en förskjutning från avatarens bröstkorg; detta avgör vart handen går medan objektet hålls eller aktiveras.

Kastbar

Som namnet antyder kan du hämta och kasta ett objekt av den här typen. När du har tagit tag i det kan du gå in i målläge genom att trycka på och hålla i den vänstra musknappen. Detta gör att din avatar arm att följa musen målet; för att kasta objektet släpper du vänster musknapp.

Ett skärmdump av ett dartspel med en pil tog tag i och läste för att kastas.

Alla komponenter i Interactables har interaktionsegenskaper och metoder som är tillgängliga för visualisering av skript så att du har ett obegränsat antal sätt att få dem att fungera tillsammans.

Gör objekt interagerande med visualiseringsskript

Om du vill ställa in reaktioner på ett objekts interaktioner med visuella skript kan du använda komponenten Mesh Interactable Body i ett skriptdiagram med en nod till en tillgänglig egenskap, till exempel OnHovered eller OnSelected, ansluten till en OnStateChanged-nod . Följande skriptdiagram aktiverar till exempel cylindern medan knappen trycks ned och inaktiverar den när knappen släpps. Knappen är helt interagerande bara genom att lägga till skriptet och en kolliderare. Du behöver inte göra något annat.

En skärmbild av ett skriptdiagram med en mesh-interagerande brödtext är vald nod.

Inställningar

Inställningar som är gemensamma för Manipulables, Equippables och Throwables

En skärmbild av en mesh-komponent för interaktionsbar installation med de egenskaper som är gemensamma för alla objekttyper markerade.

Interaktion Närhetsradie Längst bort kan avataren interagera med det här objektet

Hovrings-IK-inställningar – IK-inställningar som ska användas vid hovring över ett objekt

  • Handpositionsform: Handpositionsformen som avatarens hand ska placeras i när du hovrar över objektet
  • Handpositionsstorlek: Storleken på handpositionen från 0 till 1.
  • Aktivera IK-spårning: Om avatarens arm kommer att nå mot objektet medan den hovrar med hjälp av IK-mål.
    • Begränsa IK-sfäriska: Om sant görs arm-IK på en sfär. Detta kommer att orsaka avatar arm att inte sticka rakt ut.

Markeringsinställningar

  • Hovrade/markerade: Om objektet ska markeras eller inte om det är markerat eller markerat.

  • Markeringsmekanism

    • Menyalternativ 1: Skuggningsegenskaper

      • Markeringsfärg: Färgen för att ange materialets färgegenskaper när objektet är markerat.
      • Markera övergångsvaraktighet: Hur lång tid det går att tona in/ut markeringen vid övergången.
      • Markera egenskaper för belopp: Materialets egenskaper för att ange mängden markeringar när det är markerat. Det här är ett flyttalvärde.
      • Egenskaper för markeringsfärg: Materialets egenskaper för att ange färgen på markeringar när det är markerat. Det här är ett färgvärde.
    • Menyalternativ 2: Nätdisposition: Lägger till en automatisk kontur av den angivna färgen/bredden för objekt.

      • Markeringsfärg: Konturens färg.
      • Markera övergångsvaraktighet: Hur lång tid det går att tona in/ut dispositionen vid övergången.
      • Markera dispositionsbredd: Hur tjock (i meter) konturen ska vara. Åsidosätter "Extrusion Value" i grafikverktyg/standardmaterial.
      • Anpassat dispositionsmaterial: Det material som används för att återge dispositionen.
      • Anpassat stencilskrivningsmaterial: Materialet som används skriver ett värde till stencilbufferten
      • Dispositionsundantagsläge: Alternativ för att filtrera bort renderare som du inte vill ska ingå i dispositionen.
    • Menyalternativ 3: Inre ljussken: Tillämpar en markering med en ljusskenseffekt med hjälp av de angivna egenskaperna.

      • Markeringsfärg: Färgen på den inre glöden.
      • Markera övergångsvaraktighet: Hur lång tid det går att tona in/ut den inre glöden vid övergång
      • Anpassat markeringsmaterial: Åsidosätt alternativet som är specifikt för det här objektet för att ange det material som används för glöden. Om detta inte anges används standardmaterialet från inställningstillgången.
      • Exkluderingssträng: Om detta anges undantas alla spelobjekt med ett namn som innehåller exkluderingssträngen från markeringsmarkeringen.

Inställningar som är exklusiva för Manipulables

En skärmbild av mesh-komponenten för interaktionsbar installation med de manipulerbara inställningarna som visas.

  • Framtvinga läge: Läget som ska användas för att tvinga objektet genom rymden
    • Standard: Standardbeteende för MRTK som flyttar objektet med hjälp av dess mittpunkt.
    • Point Spring: Alternativt beteende som flyttar objektet genom att tillämpa kraft vid en grippunkt (fungerar endast för styva kroppar)
  • Rotation (endast tillgängligt för standardläge)
    • Aktiverad: Om objektet kan roteras under manipulering eller inte. Varje axel kan anges individuellt.
    • Rotationslogik för manipulation
      • Standard: När du manipulerar ett objekt roterar det runt kameran och håller sig på samma orientering i förhållande till kameran (faktiska transformeringsvärden roteras).
      • Restriktiv: När du manipulerar ett objekt roteras inte dess transformering och förblir inte på samma orientering i förhållande till kameran.
  • Översättning (endast tillgängligt för standardläge) =Aktiverad: Om objektet kan översättas när det manipuleras. Varje axel kan anges individuellt.
  • Point Spring (endast tillgängligt för Point Spring-läge)
    • Fjädra styrka: Styrkan av fjädra som hämtar anmärker. Ju högre värde desto snabbare når det målpunkten.
    • Dämpningsfaktor: Hur mycket dämpning som används för att förhindra svängning runt tagningspunkten.
  • Ändra måltransformering: Ger användaren möjlighet att åsidosätta standardtransformeringen och ange önskad position och rotation av objektet i förhållande till kamera/avatar medan objektet är markerat. När detta är inställt på Aktiverad får du följande tre egenskaper:
    • Målutrymme:
      • Lokalt utrymme i kameran: Om du vill ange position och rotation i kamerans lokala utrymme.
      • Lokal plats för avatar: Om du vill ange position och rotation i avatarens lokala utrymme.
    • Ny målposition: Ny målposition (z-komponenten är riktningen där kameran/avataren är riktad)
    • Ny målrotation: Ny målrotation
  • Avatar-IK
    • Handpositionsform: Handpositionsformen som avatarens hand ska placeras i när objektet manipuleras
    • Handpositionsstorlek: Storleken på handpositionen från 0 till 1.
    • Aktivera IK-spårning: Om avatarens arm kommer att nå mot objektet när den manipuleras med hjälp av IK-mål.
      • Begränsa IK-sfäriska: Om sant görs arm-IK på en sfär. Detta kommer att orsaka avatar arm att inte sticka rakt ut.

Inställningar som delas av Equippables och Throwables

En skärmbild av mesh-komponenten för interaktionsbar installation med de inställningar som är gemensamma för Equippables och Throwables markerade.

  • Interaktionsförskjutning: Positionen och rotationsförskjutningen i förhållande till avatarens hand för att placera objektet.
  • Utrusta målställning
    • Position: Avståndet från avatarens bröstkorg för att placera handen när ett föremål är utrustat.
    • Rotation: Mängden för att rotera handleden när ett föremål är utrustat.
  • Hållen handställning:
    • Handpositionsform: Det här är en listruta som innehåller en rad olika handställningsformer för att placera avatarens hand i när den är utrustad. Du kan också välja ingen.
    • Handpositionsstorlek: Storleken på handpositionen från 0 till 1.

Inställningar som är exklusiva för Equippables

En skärmbild av mesh-komponenten för interaktionsbar installation med de equippable-inställningar som visas.

  • Aktivera konfiguration
    • Aktivera typ: När objektet ska anges som aktivt. Det går inte att aktivera utkastbara objekt och den aktiverade typen har alltid angetts till ingen.
      • Ingen: Det här objektet kan inte aktiveras.
      • Växla: Det här objektet växlar mellan aktiv/inte aktiv varje gång aktiveringskontrollen klickas.
      • Enkel: Det här objektet aktiveras när aktiveringskontrollen klickas och sedan inaktiveras automatiskt när det når den sista målställningen.
    • Aktivera målställningar: En lista över målställningar som används för att placera avatarens hand när ett objekt aktiveras. Varje pose består av fyra egenskaper: Position, Rotation, Interpolationstid och Animeringskurva. Positionen och rotationsförskjutningarna är relativa till avatarens bröstkorg. Avataren interpolerar med hjälp av animeringskurvan från föregående pose till den aktuella sekventiellt nedåt i listan under den tid som definierats i interpoleringstiden och stannar vid den sista posen tills den inaktiveras. När den inaktiveras flyttas avatarens handposition bakåt genom listan.

Inställningar som är exklusiva för Throwables

En skärmbild av mesh-komponenten för interaktionsbar installation med de inställningarna som kan kastas visas.

Målkonfiguration:

  • Arm extension on Aim – Mängden för att förlänga armen när den är i målläge.
  • Målhandsposition:
    • Handpositionsform: Handpositionsformen för att placera avatarens hand i när du siktar.
    • Handpositionsstorlek: Storleken på handpositionen från 0 till 1.
  • Målhandrotation: Rotationen av handen medan du siktar
  • Kasta handställning:
    • Handpositionsform: Handpositionsformen för att placera avatarens hand i när kastet släpps
    • Handpositionsstorlek: Storleken på handpositionen från 0 till 1.
  • VR Min Throw Velocity: Den minsta hastighet som ska tillämpas på ett objekt när det kastas på questen.
  • VR maxkasthastighet: Den maximala hastighet som ska tillämpas på ett objekt när det kastas på Quest. Det här är hastighetsvärdet som används på datorn. På Quest skalas hastigheten baserat på användarens fysiska armrörelse.

På Quest skalas den hastighet som tillämpas när ett objekt utlöses mellan lägsta och högsta värden med hjälp av den verkliga hastigheten för användarens armrörelse.

  • 2D-inställningar
    • 2D-kasthastighet: Den hastighet som ska tillämpas på ett objekt när det kastas på datorn.
    • Kasta riktningsförskjutning: En riktningsförskjutning som ska tillämpas på ett objekt när det kastas på datorn.
  • Kasta målställningar: En lista över målställningar som används för att placera avatarens hand när ett objekt kastas. Position och rotationsförskjutningar är relativa till positionen för avatarens hand när kastet initierades. Avataren interpolerar med hjälp av animeringskurvan från föregående pose till den aktuella sekventiellt nedåt i listan under den tid som definierats i interpoleringstiden. Objektet släpps och kasthandpositionen används vid det näst sista målet.

Visual Scripting

För alla interagerande kroppar:

  • Egenskaper
    • IsHovered (skrivskyddad) – Om din lokala avatar hovrar objektet eller inte.
    • IsSelected (skrivskyddad) – Om någon avatar väljer objektet eller inte. När du kör i MeshBrowser kommer detta att nätverkas.
    • IsSelectedLocally – om den lokala avataren väljer objektet eller inte.
    • IsMine (skrivskyddad) – Sant för den sista avataren att välja eller utrusta objektet.

För utrustningsutrustning:

  • Egenskaper
    • EquippedAt (skrivskyddad) – Där det här objektet är utrustat – Ingen, DefaultHand, RightHand, LeftHand. När du kör i MeshBrowser kommer detta att nätverkas.
    • EquipTime (skrivskyddad) – vilken tid det här objektet var utrustat. När du kör i MeshBrowser kommer detta att nätverkas.
    • IsActivated (skrivskyddad) – Om det här objektet är i aktiverat tillstånd. Gäller endast för objekt som inte kan kastas. När du kör i MeshBrowser kommer detta att nätverkas.
    • IsAiming (skrivskyddad) – Om den lokala avataren är i måltillståndet medan objektet hålls. Gäller endast för throwables.
    • IsThrowing (skrivskyddad) – Om den lokala avataren aktivt genererar objektet. Gäller endast för throwables.
    • IsEquipped (skrivskyddad) (skrivskyddad) – Om det här objektet för närvarande är utrustat av en avatar. När du kör i MeshBrowser kommer detta att nätverkas.
    • IsThrowable – om det här objektet kan kastas.
    • ThrowVelocity – hastigheten för att kasta objektet när det släpps.

För att manipulables ska ändra målpositionen:

  • Målposition (skrivskyddad): Brödtextens målposition när standardläget för framtvingat läge används i Mesh-interaktionsbara egenskaper
  • Målrotation (skrivskyddad): Brödtextens målrotation när standardläget för framtvingat läge används i Mesh-interaktionsbara egenskaper
  • Ray Hit Position (skrivskyddad): Position av ray-cast träff av interageraren på kroppen
  • Ray Hit Rotation (skrivskyddad): Växelverkarens rotation runt strålens riktning
  • Ändrad målposition (läsning och skrivning): Används för att ange den nya målpositionen av det visuella skriptet. Detta åsidosätter standardmålpositionen. Bästa praxis är att åsidosätta den här egenskapen:
    • Användning av i-tillstånd har ändrats för målpositionen. I det här fallet utlöser det visuella skriptet endast ett flöde när interageraren och den nya positionen har ändrats.
    • Använda vid sen uppdatering. Om du behöver ändra måltransformen i varje bildruta gör du det i en sen uppdatering så att den nya måltransformen blir tillgänglig omedelbart i nästa bildruta.
  • Ändrad målrotation (läsning och skrivning): Används för att ange den nya målrotationen av det visuella skriptet. Detta åsidosätter standardmålpositionen.

Inställningar

Ändra med visuellt skript: Aktivera detta för att ändra måltransformering för manipulerbara kroppar med hjälp av visuellt skript. Ändra med visuellt skript

Nästa steg