Freigeben über


Mit Interagierbaren greifen, halten und auslösen

Übersicht

Mesh Interactables ist ein System zum Konfigurieren von Objekten mit Unity-Skripts, das die Interaktion mit einem Objekt oder Avatarverhalten zur Laufzeit definiert. Die Skripts definieren die Eigenschaften des Objekts, mit denen mit XRI-Interagatoren interagiert werden kann. Das Mesh-Toolkit enthält Skripts verschiedener Objekttypen, die definiert werden können. Wenn ein Projekt ausgeführt wird, richtet es alle erforderlichen Voreinstellungen ein, die für Objekte oder den Avatar erforderlich sind, um sich wie definiert zu verhalten. Wenn Sie eine ungefähre Vorschau davon sehen möchten, wie Ihre interagierbaren Objekte aussehen und sich verhalten, wenn sie in der Mesh-App ausgeführt werden, müssen Sie den Wiedergabemodus mit der Gitteremulation einrichten. Beachten Sie, dass die in der Mesh-App angezeigte IK-Funktion im Wiedergabemodus mit Gitteremulation nicht verfügbar ist.

Die Interagierbare Setupkomponente für Gitter

Um ein Objekt interagierbar zu machen, müssen Sie die Setupkomponente "Mesh Interactable" hinzufügen.

  1. Wählen Sie in der Hierarchie das Objekt aus.

  2. Klicken Sie im Inspektor auf die Schaltfläche "Komponente hinzufügen", und wählen Sie dann "Gitterinteraktionsfähiges Setup" aus.

    Screenshot des Dialogfelds

Die Komponente wird mit der standardmäßigen Interagierbaren Type-Eigenschaft hinzugefügt, die auf "Basic" festgelegt ist. (Objekttypen werden im nächsten Abschnitt erläutert.)

Screenshot der Komponente

Die Eigenschaften für eine Gruppe von Objekten, die sich alle verhalten, können mit einer übergeordneten Setupkomponente für Gitterinteraktion eingerichtet werden. Die Eigenschaften werden auf alle untergeordneten Elemente mit Starrbodies zur Laufzeit angewendet, indem jeder untergeordneten Objekt automatisch eine Mesh Interactable Body-Komponente hinzugefügt wird. Sie können Gitterinteraktionsfähigen Text manuell hinzufügen, um Gitterinteraktionen mit visual Scripting zu verwenden, z. B. mit Interaktionsereignissen oder zum Ändern der manipulierbaren Zieltransformation über das visuelle Skript.

Screenshot der Interagierbaren Body-Komponente

Hinweise:

  • Der interagierbare Gittertext ermöglicht es jedem Interagierbaren, sich unabhängig voneinander zu verhalten.

  • Ein starrer Mensch muss einem Objekt hinzugefügt werden, wenn es physikfähig sein soll.

Hilfe

In den Komponenten "Mesh Interactables Setup " und "Mesh Interactable Body " können Sie auf die Schaltfläche "?" klicken, um zu einer Seite in der Gitterdokumentation zu navigieren, die Hilfe für die Funktion enthält, mit der die Schaltfläche verbunden ist.

Screenshot der interagierbaren Gitterkomponenten mit hervorgehobener Schaltfläche

Interagierbare Objekttypen

Es gibt vier Objekttypen:

  • Grundlegend
  • Manipulierbar
  • Ausstattbar
  • Abwerfbar

So wählen Sie einen Objekttyp aus:

  • Klicken Sie in der Komponente "Gitterinteraktionsfähiges Setup" auf die Dropdownliste "Interaktionsfähiger Typ ", und wählen Sie dann eine der vier Optionen aus.

Screenshot der Menüoptionen für den Objekttyp in der Komponente

Grundlegend

Wie bereits erwähnt, ist dies der Standardtyp. Wenn der Benutzer auf das Objekt zeigt oder das Objekt auswählt, kann er Rückrufe aufrufen und andere Skripts reagieren. Wenn Sie beispielsweise über eine Schaltfläche verfügen, die Sie verwenden möchten, um ein anderes Objekt zu aktivieren, fügen Sie diesen Interaktionstyp der Schaltfläche mit einem OnSelected-Rückruf hinzu, um dieses andere Objekt zu aktivieren. Die Schaltfläche kann vollständig interagiert werden, indem sie diesen Typ und einen Kollider hinzufügt. Sie müssen nichts anderes tun.

Hinweis: Die anderen drei interagierbaren Typen --Manipulable, Equippable und Throwable (siehe unten) haben dieselben Attribute wie der Basic-Typ, aber mit zusätzlichen Features.

Weitere Informationen zu grundlegenden Objekttypeinstellungen

Manipulierbar

Sie können ein Objekt dieses Typs aus einer Entfernung verschieben; Insbesondere bearbeiten Sie seine Transformation zur Laufzeit und bewegen sie durch den Raum am Ende eines Interaktionsstrahls. Tastenkombinationen stehen zum Drehen oder Übersetzen des Objekts zur Verfügung. Für die Manipulation von Objekten in der Mesh-App können Sie die IK-Einstellungen für die Avatarhand aktivieren, um dem Objekt zu folgen. Manipulierbare Objekte erfordern keine starre Person, aber Sie sollten ein Objekt hinzufügen, wenn die Objekte über physikalische Funktionen verfügen sollen.

Ein Screenshot einer Mesh-Erfahrung mit einem Kaffeetopf, der manipuliert wird.

Weitere Informationen zu Manipulable-Objekttypeinstellungen

Ausstattbar

Sie können ein Objekt dieses Typs erfassen. In Mesh sagen wir, dass Sie das Objekt der Hand Ihres Avatars "ausstatten". Wenn Sie ein Objekt auf dem PC ausstatten möchten, klicken Sie auf das Objekt, oder drücken Sie F , während das Objekt ausgewählt ist. Um ein Objekt auf der Quest auszurüsten, drücken Sie die Taste "Grip", während das Objekt ausgewählt ist. Ausstattbare Objekte enthalten Einstellungen für IK-Ziele für die Arm-Pose Ihres Avatars, während das Objekt ausgestattet ist. Die IK-Ziele sind ein Offset von der Brust des Avatars; dies bestimmt, wo die Hand geht, während das Objekt gehalten oder aktiviert wird.

Weitere Informationen zu Einstellungen des Equippable-Objekttyps

Abwerfbar

Wie der Name schon sagt, können Sie ein Objekt dieses Typs abrufen und auslösen. Nach dem Greifen können Sie in den Zielmodus wechseln, indem Sie die linke Maustaste drücken und gedrückt halten. Auf diese Weise kann der Arm Ihres Avatars ihrem Mausziel folgen. um das Objekt auszulösen, lassen Sie die linke Maustaste los.

Ein Screenshot eines Dartspiels mit einem Dart-Grab und lesen Sie, um geworfen zu werden.

Weitere Informationen zu Einstellungen für den Typ des Typs "Throwable"

Erstellen von Interaktionsobjekten mit visuellem Skripting

Alle Interagierbaren Komponenten verfügen über Interaktionseigenschaften und -methoden, die für Visual Scripting verfügbar sind, sodass Sie eine unbegrenzte Anzahl von Möglichkeiten haben, um sie zusammenzuarbeiten. Um dies zu nutzen, verwenden Sie die Mesh Interactable Body-Komponente in einem Skriptdiagramm mit einem Knoten zu einer verfügbaren Eigenschaft, z . B. OnHovered oder OnSelected, die mit einem OnStateChanged-Knoten in Verbindung steht. Das folgende Skriptdiagramm aktiviert z. B. den Zylinder, während der Knopf gedrückt wird, und deaktiviert ihn, wenn die Taste losgelassen wird. Die Schaltfläche ist vollständig interagierbar, indem sie das Skript und einen Kollider hinzufügt. Sie müssen nichts anderes tun.

Screenshot eines Skriptdiagramms mit einem interagierbaren Gittertext ist ausgewählt.

Visual Scripting-Eigenschaften

Für alle interagierbaren Körper:

  • IsHovered (schreibgeschützt) – Ob Ihr lokaler Avatar das Objekt zeigt oder nicht.
  • IsSelected (schreibgeschützt) – Ob ein Avatar das Objekt auswählt oder nicht. Wenn sie in MeshBrowser ausgeführt wird, wird dies netzwerkiert.
  • IsSelectedLocally – Gibt an, ob der lokale Avatar das Objekt auswählt.
  • IsMine (schreibgeschützt) – True für den letzten Avatar, um das Objekt auszuwählen oder auszurüsten.

Für Equippables:

  • EquippedAt (schreibgeschützt) - Wo dieses Objekt ausgestattet ist – None, DefaultHand, RightHand, LeftHand. Wenn sie in MeshBrowser ausgeführt wird, wird dies netzwerkiert.
  • EquipTime (schreibgeschützt) – Wie lange dieses Objekt ausgestattet war. Wenn sie in MeshBrowser ausgeführt wird, wird dies netzwerkiert.
  • IsActivated (schreibgeschützt) – Wenn sich dieses Objekt im aktivierten Zustand befindet. Nur gültig für Objekte, die nicht ausgelöst werden können. Wenn sie in MeshBrowser ausgeführt wird, wird dies netzwerkiert.
  • IsAiming (schreibgeschützt) – Wenn sich der lokale Avatar im Zielzustand befindet, während dieses Objekt gehalten wird. Nur gültig für Throwables.
  • IsThrowing (schreibgeschützt) – Wenn der lokale Avatar aktiv das Objekt auslöst. Nur gültig für Throwables.
  • IsEquipped (schreibgeschützt) (schreibgeschützt) – Wenn dieses Objekt derzeit von einem Avatar ausgestattet ist. Wenn sie in MeshBrowser ausgeführt wird, wird dies netzwerkiert.
  • IsThrowable – wenn dieses Objekt ausgelöst werden kann.
  • ThrowVelocity – Die Geschwindigkeit, um das Objekt auszuwerfen, wenn es losgelassen wird.

Für Manipulables zum Ändern der Zielposition:

  • Zielposition (schreibgeschützt): Zielposition des Texts bei Verwendung des Standardkraftmodus in interagierbaren Gittereigenschaften
  • Zieldrehung (schreibgeschützt): Zieldrehung des Texts bei Verwendung des Standardkraftmodus in interagierbaren Gittereigenschaften
  • Ray Hit Position (schreibgeschützt): Position des Ray-Cast-Treffers des Interagators auf dem Körper
  • Ray Hit Rotation (schreibgeschützt):Die Drehung des Interagators um die Richtung des Strahls
  • Geänderte Zielposition (Lese- und Schreibzugriff):Wird verwendet, um die neue Zielposition durch das visuelle Skript festzulegen. Dadurch wird die Standardzielposition überschreibt. Bewährte Methode besteht darin, diese Eigenschaft außer Kraft zu setzen:
    • Verwenden von "On State Changed of Target Position". In diesem Fall löst das visuelle Skript nur dann einen Fluss aus, wenn sich der Interagierer und die neue Position geändert haben.
    • Bei verspäteter Aktualisierung verwenden. Wenn Sie die Zieltransformation in jedem Frame ändern müssen, führen Sie dies in einem späteren Update durch, damit die neue Zieltransformation sofort im nächsten Frame verfügbar ist.
  • Geänderte Zieldrehung (Lese- und Schreibzugriff): Wird verwendet, um die neue Zieldrehung durch das visuelle Skript festzulegen. Dadurch wird die Standardzielposition überschreibt.

Nächste Schritte