Grijp, houd vast en gooi deze met Interactables
Overzicht
Mesh Interactables is een systeem voor het configureren van objecten met Unity-scripts die interactie met een object of avatargedrag tijdens runtime definiëren. De scripts definiëren de eigenschappen van het object waarmee kan worden gecommuniceerd met behulp van XRI-interactie. De Mesh-toolkit bevat scripts van verschillende objecttypen die kunnen worden gedefinieerd. Wanneer een project wordt uitgevoerd, stelt het alle benodigde prefabs en instellingen in die vereist zijn voor objecten of de avatar om zich te gedragen zoals gedefinieerd. Als u een geschatte preview wilt zien van wat uw interactiebare objecten eruit zullen zien wanneer ze worden uitgevoerd in de Mesh-app, moet u de Play-modus met Mesh Emulation instellen. Houd er rekening mee dat de IK-functionaliteit die wordt weergegeven in de Mesh-app niet beschikbaar is in de play-modus met Mesh Emulation.
Het Mesh Interactable Setup-onderdeel
Als u een object interactief wilt maken, moet u het onderdeel Mesh Interactable Setup toevoegen.
Selecteer het object in de hiërarchie.
Klik in Inspector op de knop Component toevoegen en selecteer vervolgens Mesh Interactable Setup.
Het onderdeel wordt toegevoegd met de standaardeigenschap Interactiebaar type ingesteld op Basic. (Objecttypen worden in de volgende sectie uitgelegd.)
De eigenschappen voor een groep objecten die allemaal hetzelfde gedragen, kunnen worden ingesteld met een bovenliggend mesh-configuratieonderdeel . De eigenschappen worden tijdens runtime toegepast op alle kinderen met rigidbodies door automatisch een Mesh Interactable Body-onderdeel toe te voegen aan elk onderliggend object. Mogelijk wilt u Mesh Interactable Body handmatig toevoegen om Mesh-interactieables te gebruiken met Visual Scripting, zoals met interactiegebeurtenissen of om de manipuleerbare doeltransformatie via het visuele script te wijzigen.
Opmerkingen:
Mesh Interactable Body zorgt ervoor dat elke interactie onafhankelijk werkt.
Er moet een rigidbody worden toegevoegd aan een object als u wilt dat het fysica is ingeschakeld.
Hulp krijgen
In de Mesh Interactables Setup - en Mesh Interactable Body-onderdelen kunt u op de knop '?' klikken om naar een pagina in de Mesh-documentatie te navigeren die hulp bevat voor de functie waarmee de knop is verbonden.
Interactiebare objecttypen
Er zijn vier objecttypen:
- Basis
- Manipulable
- Uitrusten
- Gooibaar
Een objecttype kiezen:
- Klik in het onderdeel Mesh Interactable Setup op de vervolgkeuzelijst Interactiebaar type en selecteer vervolgens een van de vier opties.
Basis
Zoals hierboven vermeld, is dit het standaardtype. Wanneer de gebruiker het object aanwijst of selecteert, kan het callbacks aanroepen en kunnen andere scripts reageren. Als u bijvoorbeeld een knop hebt die u wilt gebruiken om een ander object in te schakelen, voegt u dit type Interactiebaar toe aan de knop met een onSelected callback om dat andere object in te schakelen. De knop kan volledig worden gebruikt door dit type en een collider toe te voegen; Je hoeft verder niets te doen.
Opmerking: de andere drie interactiebare typen:-Manipulable, Equippable en Throwable (zie hieronder), hebben dezelfde kenmerken als het basistype, maar met extra functies.
Meer informatie over basisinstellingen voor objecttypen
Manipulable
U kunt een object van dit type van een afstand verplaatsen; met name u de transformatie tijdens runtime bewerkt en verplaatst u deze door de ruimte aan het einde van een interactiestraal. Snelkoppelingsbesturingselementen zijn beschikbaar om het object te draaien of te vertalen. Voor het bewerken van objecten in de Mesh-app kunt u IK-instellingen voor de avatar-hand inschakelen om het object te volgen. Voor manipuleerbare objecten is geen rigide iemand vereist, maar u moet er een toevoegen als u wilt dat de objecten fysicamogelijkheden hebben.
Meer informatie over instellingen voor het objecttype Manipulable
Uitrusten
U kunt een object van dit type ophalen. In Mesh zeggen we dat u het object 'uitrusten' aan de hand van uw avatar. Als u een object op de pc wilt uitrusten, klikt u op het object of drukt u op F terwijl het object is geselecteerd. Als u een object op de Quest wilt uitrusten, drukt u op de knop Grip terwijl het object is geselecteerd. Uitrustbare objecten bevatten instellingen voor IK-doelen voor de armhouding van uw avatar terwijl het object is uitgerust. De IK-doelen zijn een verschuiving van de borst van de avatar; dit bepaalt waar de hand gaat terwijl het object wordt vastgehouden of geactiveerd.
Meer informatie over instellingen voor het objecttype Equippable
Gooibaar
Zoals de naam al aangeeft, kunt u een object van dit type ophalen en gooien. Na het pakken kunt u de doelmodus inschakelen door op de linkermuisknop te drukken en ingedrukt te houden. Hierdoor kan de arm van je avatar je muisdoel volgen; als u het object wilt gooien, laat u de linkermuisknop los.
Meer informatie over instellingen voor het objecttype Throwable
Objecten interactief maken met Visual Scripting
Alle onderdelen van Interactables hebben interactie-eigenschappen en -methoden die beschikbaar zijn voor Visual Scripting , zodat u een onbeperkt aantal manieren hebt om ze samen te laten werken. Als u hiervan gebruik wilt maken, gebruikt u het Mesh Interactable Body-onderdeel in een scriptgrafiek met een knooppunt naar een beschikbare eigenschap, zoals OnHovered of OnSelected, gekoppeld aan een OnStateChanged-knooppunt . Met de volgende scriptgrafiek wordt bijvoorbeeld de cilinder ingeschakeld terwijl de knop wordt ingedrukt en uitgeschakeld wanneer de knop wordt losgelaten. De knop is volledig interactief door het script en een collider toe te voegen; Je hoeft niets anders te doen.
Eigenschappen van visualscripting
Voor alle interactiebare lichamen:
- IsHovered (alleen-lezen): of uw lokale avatar het object aanwijst of niet.
- IsSelected (alleen-lezen): of een avatar het object al dan niet selecteert. Wanneer u in MeshBrowser werkt, wordt dit netwerked.
- IsSelectedLocally : of de lokale avatar het object al dan niet selecteert.
- IsMine (alleen-lezen): waar voor de laatste avatar om het object te selecteren of uit te rusten.
Voor Equippables:
- EquippedAt (alleen-lezen) - Waar dit object is uitgerust – None, DefaultHand, RightHand, LeftHand. Wanneer u in MeshBrowser werkt, wordt dit netwerked.
- EquipTime (alleen-lezen): hoe laat dit object was uitgerust. Wanneer u in MeshBrowser werkt, wordt dit netwerked.
- IsActivated (alleen-lezen): als dit object de geactiveerde status heeft. Alleen geldig voor objecten die niet kunnen worden gegooid. Wanneer u in MeshBrowser werkt, wordt dit netwerked.
- IsAiming (alleen-lezen): als de lokale avatar de doelstatus heeft terwijl dit object wordt vastgehouden. Alleen geldig voor throwables.
- IsThrowing (alleen-lezen): als de lokale avatar actief het object gooit. Alleen geldig voor throwables.
- IsEquipped (alleen-lezen) (alleen-lezen): als dit object momenteel is uitgerust met een avatar. Wanneer u in MeshBrowser werkt, wordt dit netwerked.
- IsThrowable – als dit object kan worden gegooid.
- ThrowVelocity – De snelheid om het object te gooien wanneer het wordt vrijgegeven.
Voor manipulables om de doelpositie te wijzigen:
- Doelpositie (alleen-lezen): doelpositie van de hoofdtekst bij gebruik van de standaardmodus Force in mesh-interactie-eigenschappen
- Doelrotatie (alleen-lezen): doelrotatie van de hoofdtekst bij gebruik van de standaardmodus Force in mesh-interactie-eigenschappen
- Ray Hit Position (alleen-lezen): Positie van de ray-cast-hit van de interactie op het lichaam
- Ray Hit Rotation (alleen-lezen): de draaiing van de interactie rond de richting van de straal
- Gewijzigde doelpositie (lezen en schrijven):wordt gebruikt om de nieuwe doelpositie in te stellen door het visuele script. Hiermee wordt de standaarddoelpositie overschreven. Best practice is om deze eigenschap te overschrijven:
- Bij status gewijzigd van doelpositie gebruiken. In dit geval wordt een stroom alleen geactiveerd wanneer de interactie en de nieuwe positie zijn gewijzigd.
- Gebruiken bij late update. Als u de doeltransformatie in elk frame wilt wijzigen, moet u dit later doen, zodat de nieuwe doeltransformatie direct beschikbaar is in het volgende frame.
- Aangepaste doelrotatie (lezen en schrijven):wordt gebruikt om de nieuwe doelrotatie in te stellen door het visuele script. Hiermee wordt de standaarddoelpositie overschreven.