Freigeben über


Mesh 101 Tutorial Kapitel 3: Hinzufügen von Interaktivität mit visuellem Gitterskripting



Hinweis

Wir nehmen regelmäßige Aktualisierungen am Mesh-Toolkit vor, und dieses Video spiegelt möglicherweise nicht alle neuesten Änderungen wider. Sie sollten den Inhalt dieses Artikels als Quelle der Wahrheit anzeigen.

Nachdem wir die Einrichtungsphase abgeschlossen haben, wollen wir uns darauf konzentrieren, Ihre GameObjects interaktiv zu machen! In diesem Kapitel werden wir uns mit der visuellen Skripterstellung von Gittern in Verbindung setzen, die Sie verwenden können, um Ihrer Umgebung benutzerdefinierte Logik hinzuzufügen.

Hinweis

  • Es gibt zwei Arten von Mesh Scripting: Mesh Cloud Scripting, die C#-Code und Mesh Visual Scripting verwendet, wobei Sie ein Script Graph erstellen und dann Knoten (auch als Einheiten bezeichnet) in einer Sequenz hinzufügen, um Ihre Codierungslogik zu erstellen. In dieser Version des Lernprogramms "Mesh 101" wird die visuelle Skripterstellung von Gittern verwendet. die vorherige Version hat Mesh Cloud Scripting verwendet.

  • Die Gitterskripterstellung ist für jede Umgebung nicht erforderlich, aber Sie benötigen es für die Features, die wir hier hinzufügen werden: Interaktive Schaltfläche, Auslösen eines Popups für Informationstext und Teleportieren in der Szene.

Station 3.1: Erstellen einer interagierbaren Schaltfläche

Für unsere erste Aufgabe möchten wir eine Schaltfläche erstellen, die ein Video wiedergeben wird, wenn es von einem Avatar gedrückt wird. Der Avatar kann dann die gleiche Taste drücken, um das Video zu beenden.

  • Navigieren Sie im Szenenfenster zu der Kugelterrasse, die die Stationen für Kapitel 3 enthält, und passen Sie die Ansicht so an, dass Sie die erste Station 3.1 -- Videowiedergabe wie unten gezeigt betrachten.

Screenshot des Videowiedergabefensters im Unity-Szenenfenster mit der ersten Station in der Umgebung

Wie Sie sehen können, gibt es bereits einen Videobildschirm, benötigt aber eine Wiedergabe-/Stoppschaltfläche. Wie das Textfeld für die Station erläutert, erstellen wir ein Script Graph mit einer Schaltflächenlogik, damit die Schaltfläche verwendet werden kann, um den VideoPlayer ein- und auszuschalten und den Schaltflächentext zu ändern.

Hinzufügen der Schaltfläche zur Szene

  1. Stellen Sie in Unity sicher, dass das GameObject "Chapter3 " und das untergeordnete Objekt 3.1 – Video erweitert werden.

    Screenshot von Unity hierachy mit erweiterten Videoordnern

  2. Suchen Sie im Projektfenster nach dem ButtonBase-Prefab . Stellen Sie sicher, dass Sie ALLE für den Suchfilter auswählen.

    Screenshot des Begriffs Buttonbase, der im Projektfenster in Unity durchsucht wurde

  3. Ziehen Sie ButtonBase aus dem Projektfenster , und legen Sie sie dann in der Hierarchie auf das GameObject mit dem Namen 3.1 -- Video ab, sodass ButtonBase als untergeordnetes Element auf 3.1 -- Video platziert wird.

    Screenshot von Buttonbase, der in die Hierarchie gezogen und dem GameObject mit dem Namen 3.1 -- Video hinzugefügt wurde

    Stellen Sie sicher, dass die Transformationspositionswerte> für ButtonBase 0, 0, 0 sind.

    ButtonBase wird in der Szene etwas niedriger platziert als in der gewünschten Position. Das ändern wir gleich.

  4. Stellen Sie sicher, dass ButtonBase in der Hierarchie ausgewählt ist.

  5. Ändern Sie im Inspektor den Wert der Transformationsposition>>Y in "1".

Perfekt! Jetzt befindet sich ButtonBase direkt unterhalb des Videobildschirms richtig.

Screenshot von Unity mit der ButtonBase unter dem BackplateBase-Objekt

Umbenennen der Schaltfläche

  • Wenn ButtonBase ausgewählt ist, ändern Sie im Inspektor den Namen von ButtonBase in "PlayVideoButton".

    Screenshot von Unity mit der in PlayVideButton umbenannten ButtonBase

Ändern der Beschriftung der Schaltfläche

Im Moment lautet der Text auf der Schaltfläche "Beschriftung". Lassen Sie uns dies in "Wiedergeben" ändern.

  1. Erweitern Sie in der Hierarchie das PlayVideoButton GameObject, um dessen untergeordnete Objektschaltfläche anzuzeigen, und erweitern Sie dann die Schaltfläche, um die untergeordneten Objekte anzuzeigen, und wählen Sie dann das untergeordnete Label-Objekt aus.

    Screenshot einer Unity mit hierarcchy mit hervorgehobener Schaltfläche

  2. Navigieren Sie im Inspektor zur TextMeshPro -- Textkomponente , und ändern Sie dann im Textfeld "Texteingabe " den Text in "Wiedergeben".

    Screenshot von Unity mit Inspektor für die Schaltflächenbezeichnung mit hervorgehobenem Text

Erstellen des visuellen Skripts für die Schaltfläche

  1. Stellen Sie in der Hierarchie sicher, dass PlayVideoButton ausgewählt ist.

  2. Klicken Sie im Inspektor auf "Komponente hinzufügen", und wählen Sie dann "Skriptcomputer" aus.

    Beachten Sie, dass zwei neue Komponenten im Inspektor hinzugefügt wurden: Skriptcomputer und Variablen. Es gibt auch ein neues Fenster mit dem Namen Mesh Visual Scripting Diagnostics am unteren Rand des Inspector. Dieses Fenster gibt Ihnen Feedback zu Ihrem visuellen Skript und kann für die Problembehandlung hilfreich sein.

    Screenshot einer Unity mit zwei hinzugefügten Komponenten, Skriptcomputer und Variablen.

  3. Beachten Sie, dass in der Skriptcomputerkomponente die Option "Quelle " auf Graph festgelegt ist. Sie haben zwei Optionen für "Quelle": "Graph " und "Einbetten". Jede hat Vor- und Nachteile. Wir wählen Graph für unsere Skripts aus, da ein Graph-Skript als separate Datei gespeichert wird und dies eine größere Flexibilität bietet.

    Tipp

    Graph und Embed werden im Unity Script Machine-Artikel ausführlicher beschrieben.

  4. Klicken Sie in der Skriptcomputerkomponente auf die Schaltfläche "Neu ".

  5. Erstellen Sie im Fenster "Graph speichern" einen neuen Ordner, und benennen Sie ihn dann in "Skripts" um.

  6. Öffnen Sie den Ordner "Scripts", und geben Sie dann im Textfeld "Dateiname " "PlayVideoButton" ein.

  7. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche "Speichern ".

  8. Geben Sie in der Skriptcomputerkomponente einen Namen in das Feld "Titel " für das Diagramm ein: "VideoPlayer".

  9. Geben Sie eine Beschreibung im Feld "Zusammenfassung " für das Diagramm ein: "Definiert, wie der Videoplayer auf Wiedergabe-/Stoppaktionen reagiert."

    __________________

Einrichten des Skriptdiagramms

  1. Klicken Sie in der Skriptcomputerkomponente auf "Graph bearbeiten". Dadurch wird das Skriptdiagrammfenster geöffnet. Ziehen Sie es, und platzieren Sie es neben der Registerkarte "Projekt " und "Konsole ", falls sie noch nicht vorhanden ist, damit das Skriptdiagramm- und Szenenfenster gleichzeitig angezeigt wird.

    Screenshot der Unity-Komponente mit hervorgehobener Skriptcomputerkomponente mit geöffnetem Skriptdiagramm.

    Wenn wir Knoten hinzufügen, möchten Sie möglicherweise mehr Platz im Fenster; Sie können auf die Schaltfläche mit drei Punkten klicken und dann "Maximieren" auswählen, um dies zu erreichen, oder auf die Schaltfläche "Vollbild" in der oberen rechten Ecke des Fensters klicken.

    Hinweis

    Ein Knoten wird auch als Einheit in Visual Scripting bezeichnet. In diesem Lernprogramm verwenden wir weiterhin den Begriffsknoten.

  2. Die Standardmäßigen OnStart - und OnUpdate-Knoten sind nicht erforderlich. Löschen Sie sie.

Skriptdiagrammlayout

Unser Script Graph enthält zwei Abschnitte:

Abschnitt 1: Erkennen, wenn auf die Schaltfläche "Wiedergeben/Beenden" des Videoplayers geklickt wird. Abschnitt 2: Wenn darauf geklickt wird, geben Sie das Video wieder. Wenn es erneut geklickt wird, beenden Sie das Video.

Hier ist eine Vorschau davon, wie das Endergebnis aussehen wird:

_______________

Erkennen, ob auf die Schaltfläche geklickt wird

Der erste Abschnitt, der erkennt, ob auf die Schaltfläche geklickt wird, erfordert drei Knoten. Das GameObject im Projekt, das tatsächlich "lauscht" und auf einen Klick reagiert, ist Button. Fügen wir dies dem Skriptdiagramm hinzu.

Erstellen einer Button-Objektvariable

  1. Erweitern Sie in der Hierarchie PlayVideoButton.

  2. Erstellen Sie in script Graph Blackboard eine neue Objektvariable: Geben Sie den Namen "Button" in das Feld (Neuer Variablenname) ein, und klicken Sie dann auf die Schaltfläche "+".

    ________________

  3. Legen Sie den Typ der Objektvariablen auf "Game-Objekt" fest.

  4. Ziehen Sie aus der Hierarchie das Button GameObject, und legen Sie es dann im Feld "Wert " der neuen Variablen ab.

    ________________

  5. Ziehen Sie die Button-Objektvariable aus der Tafel , und legen Sie sie dann im Skriptdiagramm ab, um sie als Knoten hinzuzufügen.

    ________________


TIPP: Sie können hier einen Moment dauern, um einige der Komponenten für das Button GameObject zu untersuchen:

Interagierbares Gittersetup: Diese Komponente macht Button zu einem Objekt, mit dem Sie interagieren können. Weitere Informationen finden Sie unter "Erfassen,Halten und Auslösen mit Interagierbaren".

Screenshot von Unity mit dem interagierbaren Setupfenster

Skriptcomputer: Dies hat ein Skriptdiagramm mit dem Namen Button Base Behavior.

Screenshot von Unity mit dem Fenster

Wenn Sie in den Wiedergabemodus wechseln, sehen Sie, dass eine neue Komponente mit dem Namen "Mesh Interactable Body " zur Schaltfläche hinzugefügt wird.

Screenshot von Unity mit der neuen Komponente

Diese Komponente wird zur Laufzeit automatisch zu interagierbaren Körpern hinzugefügt. Es macht verschiedene Eigenschaften für visuelle Skripting verfügbar, z . B. IsHovered und IsSelected, die in einem Moment nützlich sein werden.


Fügen Sie im Skriptdiagramm einen Knoten hinzu, der uns informiert, wann die Schaltfläche ausgewählt ist.

  1. Wenn Sie möchten, beenden Sie den Wiedergabemodus, und wählen Sie dann "PlayVideoButton " in der Hierarchie aus, um sicherzustellen, dass das Diagramm im Skriptdiagrammfenster angezeigt wird.

  2. Klicken Und halten Sie im Skriptdiagramm den Outportport des Knotens "Objektvariable abrufen" gedrückt, und lassen Sie dann die Maustaste los. Dadurch wird der Fuzzy Finder geöffnet. WARNUNG: Nachdem Sie den Fuzzy Finder geöffnet haben, klicken Sie nicht auf eine beliebige Stelle außerhalb der Unity-Schnittstelle. Dadurch wird der Fuzzy Finder geschlossen und verursacht unvorhersehbares Verhalten in Script Graph.

    Screenshot einer Beschreibung der Videowiedergabe

  3. Suchen Sie nach "Ist ausgewählt", und wählen Sie dann in der Liste "Gitterinteraktionsfähiger Textkörper" aus: IstSelected.

    Screenshot einer Beschreibung der Videowiedergabe

    Hinweis: Dieser Knoten gibt einen booleschen Wert aus. Sie können dies im Graph Inspector bestätigen.

  4. Ziehen Sie einen Verbinder vom Ausgabeport des Is Selected-Knotens , und erstellen Sie dann einen neuen Knoten namens "Microsoft Mesh: On State Changed". (Suchen Sie im Fuzzy Finder nach statusänderung.)

    Screenshot einer Beschreibung der Videowiedergabe

Dies sind unsere drei Tastenklickerkennungsknoten. Der Knoten "Is Selected " beginnt mit dem Wert "False", aber wenn auf die Schaltfläche geklickt wird, ändert sich der Wert in "True" und wird an den Knoten " On State Changed " übergeben. Dieser Knoten löst dann die Wiedergabe-/Stoppknoten aus, die wir als Nächstes hinzufügen.

Wiedergeben oder Beenden des Videos

Wenn "On State Changed" den Wert "true" hat, wird das Video wiedergegeben. Wenn sie bereits wiedergegeben wird und die Schaltfläche gedrückt wird, ändert sich "Zustand geändert " in einen Wert von "false", und das Video wird nicht mehr wiedergegeben. Dies wirkt sich auf die Knoten in Abschnitt 2 des Skriptdiagramms aus, die wir in Kürze hinzufügen werden, um das Video und das weiterhin anzuzeigende Bild bereitzustellen.

Im nächsten Schritt fügen Sie einen If-Knoten hinzu, um den Fluss zu bestimmen.

  1. Ziehen Sie einen Verbinder aus dem Steuerelementausgabeport des Knotens "On State Changed ", und erstellen Sie dann einen neuen If-Knoten . (Suchen Sie im Fuzzy Finder nach if.)

    Screenshot einer Beschreibung der Videowiedergabe

  2. Ziehen Sie einen Verbinder aus dem Datenausgabeport des Knotens "On State Changed " auf den Dateneingabeport des If-Knotens .

    Screenshot einer Beschreibung der Videowiedergabe

Erstellen sie eine Variable, um festzustellen, ob das Video wiedergegeben wird oder nicht

  1. Wechseln Sie in der Tafel zur Registerkarte "Objekt", und erstellen Sie dann eine Variable mit dem Namen "isPlaying". Geben Sie den Typ "Boolean" ein, und lassen Sie das Kontrollkästchen "Wert" deaktiviert. Dadurch erhält der Boolesche Wert den Standardwert "false".

    Screenshot einer Beschreibung der Videowiedergabe

  2. Ziehen Sie die Variable "isPlaying" auf das Skriptdiagramm, und legen Sie sie dann rechts neben dem Knoten *If ab.

  3. Ziehen Sie einen Verbinder aus dem Ausgabeport "True Control" des Knotens If , und erstellen Sie dann einen neuen Knoten "Objektvariablen festlegen". (Suchen Sie im Fuzzy Finder nach set-Objekt.)

    Screenshot einer Beschreibung der Videowiedergabe

  4. Klicken Sie im Knoten "Objektvariable festlegen" auf die Dropdownliste mit dem Variablennamen, und wählen Sie dann "Wiedergeben" aus.

    Screenshot einer Beschreibung der Videowiedergabe

    Die Variable "IsPlaying " muss hier doppelt ausgeführt werden. Um sicherzustellen, dass die Wiedergabe immer den richtigen Wert aufweist, geben wir ihm Eingaben von einem Negate-Knoten .

  5. Ziehen Sie einen Verbinder vom unteren Dateneingabeport der Set-Objektvariable: isPlaying node, und erstellen Sie dann einen neuen Negate-Knoten . (Suchen Sie im Fuzzy Finder nach "Negate".)

    Screenshot einer Beschreibung der Videowiedergabe

  6. Ziehen Sie einen Verbinder aus dem Dateneingabeport des Negate-Knotens , und erstellen Sie dann einen neuen Knoten "Objektvariable abrufen". (Suchen Sie im Fuzzy Finder nach der Objektvariablen.)

  7. Klicken Sie im Knoten "Objektvariable abrufen" auf die Dropdownliste "Variablenname", und wählen Sie dann "IsPlaying" aus.

    Screenshot einer Beschreibung der Videowiedergabe

Der Knoten "Negate " ändert den Wert von "IsPlaying " auf das Gegenteil von dem, auf das er derzeit festgelegt ist. Wenn die Szene gestartet wird, ist die Wiedergabe "false" (Standardeinstellung). Wenn auf die Schaltfläche "Wiedergabe/Beenden" geklickt wird, bewirkt der Knoten "Negate" die Wiedergabe im Knoten "Objektvariable festlegen" auf "true", wodurch das Video wiedergegeben wird. Wenn die Schaltfläche erneut geklickt wird, bewirkt die Wiedergabe, dass die Wiedergabe auf "false" zurückgesetzt wird. Dadurch wird das Video beendet.

Wiedergeben des Videos oder Anzeigen eines Stillbilds

Jetzt beginnen wir mit dem Erstellen von Abschnitt 2 des Skriptdiagramms. Sie fügen die Knoten hinzu, die erkennen, ob sich die Wiedergabe ändert. Dies bestimmt, ob das Video wiedergegeben oder ein stilles Bild im WebSlate von Station 3.1 angezeigt werden soll.

  1. Fügen Sie im unteren Teil des Diagramms einen Knoten "Objektvariable abrufen" hinzu, und legen Sie dessen Wert auf "Wiedergabe" fest. (Sie können mit der rechten Maustaste auf das Diagramm klicken und dann Knoten hinzufügen. Suchen Sie nach "Objekt abrufen".)

    Screenshot einer Beschreibung der Videowiedergabe

  2. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: isPlaying node, und erstellen Sie dann einen neuen Knoten "On State Changed ". (Suchen Sie im Fuzzy Finder nach statusänderung.)

    Screenshot einer Beschreibung der Videowiedergabe

  3. Ziehen Sie einen Verbinder aus dem Steuerausgabeport des Knotens "On State Changed ", und erstellen Sie dann einen neuen If-Knoten . (Suchen Sie im Fuzzy Finder nach if.)

  4. Ziehen Sie einen Verbinder aus dem Datenausgabeport des Knotens "Im Zustand geändert ", und verbinden Sie ihn dann mit dem Dateneingabeport des Falls-Knotens .

    Screenshot einer Beschreibung der Videowiedergabe

Das Video und VideoStill (Bild) GameObjects

  1. Erweitern Sie in der Hierarchie das VideoPlayer GameObject, und beachten Sie, dass es zwei untergeordnete Objekte hat: Video und VideoStill.

  2. Wählen Sie "Video" aus, und notieren Sie sich im Inspektor Folgendes:

    • Video verfügt über eine Komponente namens "Video Player", die einen Link zu einem Windturbinenvideo enthält.

    • Video ist inaktiv (das Kontrollkästchen neben seinem Namen ist leer).

  3. Wählen Sie in der Hierarchie das VideoStill GameObject aus, und beachten Sie dann im Inspektor Folgendes:

    • VideoStill verfügt über ein noch angefügtes Bild.

    • VideoStill ist aktiv (das Kontrollkästchen neben seinem Namen ist aktiviert).

    Screenshot einer Beschreibung der Videowiedergabe

Wenn die Szene gestartet wird, zeigt der Videobildschirm ein stilles Bild an (da VideoStill aktiv ist) und gibt kein Video wieder (was darauf zurückzuführen ist, dass Video inaktiv ist). Wenn der Teilnehmer während der Wiedergabe die Wiedergabe-/Stoppschaltfläche drückt, wird Video aktiv, wodurch das Video wiedergegeben wird und gleichzeitig VideoStill inaktiv wird, wodurch das stille Bild ausgeblendet wird. Die Beschriftung der Schaltfläche ändert sich auch von "Wiedergabe " zu "Beenden ", wenn der Teilnehmer erneut die Schaltfläche drückt, "Video " inaktiv, das Video beendet und "VideoStill " wieder aktiv wird, wodurch der Videobildschirm das Stillbild wieder anzeigt.

Die verbleibenden Knoten in unserem Diagramm machen all dies geschehen.

Erstellen der Video- und VideoStill -Objektvariablen (Bild)

Erstellen wir nun die Objektvariablen, die die Werte für video- und VideoStill GameObjects enthalten.

  1. Erweitern Sie in der Hierarchie VideoPlayer.

  2. Erstellen Sie in script Graph Blackboard eine neue Objektvariable: Geben Sie den Namen "Video" in das Feld (Neuer Variablenname) ein, und klicken Sie dann auf die Schaltfläche "+".

  3. Legen Sie den Typ der Objektvariablen auf "Game-Objekt" fest.

  4. Ziehen Sie das Video GameObject aus der Hierarchie, und legen Sie es dann im Feld "Wert" der neuen Variablen ab.

    ________________

  5. Erstellen Sie in der Tafel eine neue Objektvariable: Geben Sie den Namen "VideoStill" in das Feld (Neuer Variablenname) ein, und klicken Sie dann auf die Schaltfläche "+".

  6. Legen Sie den Typ der Objektvariablen auf "Game-Objekt" fest.

  7. Ziehen Sie aus der Hierarchie das VideoStill GameObject, und legen Sie es dann im Feld "Wert " der neuen Variablen ab.

    ________________

Skriptdiagrammstruktur

Dies ist ein guter Ort, um zu stoppen und zu überlegen, wie wir den Rest von Abschnitt 2 unseres Skriptdiagramms entwerfen möchten. Unser "If"-Knoten wird in einem "true"-Fluss und einem "false"-Fluss verzweigt. Unsere Objektvariablen müssen für beide Flüsse leicht zugänglich sein, sodass sie wie hier gezeigt in einer Zeile zwischen den Flüssen platziert werden:

________________

Hinzufügen der Video- und VideoStill-Objektvariablen zum Skriptdiagramm

  1. Ziehen Sie die Videoobjektvariable aus der Tafel , und legen Sie sie dann im Skriptdiagramm ab, um sie als Knoten hinzuzufügen. Platzieren Sie ihn unter dem Knoten "Wenn ".

    ________________

  2. Ziehen Sie die VideoStill-Objektvariable aus dem Blackboard , und legen Sie sie dann im Skriptdiagramm ab, um sie als Knoten hinzuzufügen. Platzieren Sie es rechts neben der Get Object Variable: Video node.

    ________________

Aktivieren des Videos

  1. Ziehen Sie einen Verbinder aus dem Ausgabeport "True" des Knotens "If ", und erstellen Sie dann ein neues Game-Objekt: Set Active node. (Suchen Sie im Fuzzy Finder nach "Set aktiv".)

  2. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: Videoknoten , und verbinden Sie ihn dann mit dem ersten Dateneingabeport des Game-Objekts: Set Active node.

  3. Aktivieren Sie das Kontrollkästchen "Wert" des Knotens, wodurch der Knoten aktiv wird.

    ____________

  4. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: VideoStill node, und verbinden Sie ihn dann mit dem ersten Dateneingabeport des Game-Objekts: Legen Sie den soeben erstellten aktiven Knoten fest.

    Screenshot einer Beschreibung der Videowiedergabe

  5. Lassen Sie das Kontrollkästchen "Wert" des Knotens deaktiviert. Dadurch wird sichergestellt, dass der Knoten inaktiv ist.

    Wenn nun auf die Schaltfläche geklickt wird, wird das Video wiedergegeben, und das stille Bild wird ausgeblendet. Wir brauchen nur ein weiteres In dieser Sequenz. Da es sich bei der Schaltfläche "Wiedergabe/Beenden" um eine Umschaltfläche handelt, müssen wir sicherstellen, dass nach dem Klicken auf "Wiedergeben" die Beschriftung der Schaltfläche in "Beenden" geändert wird, und wenn sie erneut geklickt wird, ändert sich die Bezeichnung wieder in "Wiedergeben". Dazu müssen wir eine Objektvariable erstellen und hinzufügen und dann einen TextMeshPro-Knoten hinzufügen.

Erstellen und Hinzufügen der Label-Objektvariable

  1. Stellen Sie in der Hierarchie sicher, dass PlayVideoButton und dessen untergeordnete Objektschaltfläche erweitert werden.

    ________________

  2. Erstellen Sie in script Graph Blackboard eine neue Objektvariable: Geben Sie den Namen "Label" in das Feld (Neuer Variablenname) ein, und klicken Sie dann auf die Schaltfläche "+".

  3. Legen Sie den Typ der Objektvariablen auf "Game-Objekt" fest.

  4. Ziehen Sie das Label GameObject aus der Hierarchie, und legen Sie es dann im Feld "Wert" der neuen Variablen ab.

    ________________

  5. Ziehen Sie die Beschriftungsobjektvariable aus der Tafel , und legen Sie sie dann im Skriptdiagramm ab, um sie als Knoten hinzuzufügen. Platzieren Sie sie rechts neben dem Knoten "Objektvariable abrufen:VideoStill ".

    ________________

Hinzufügen des Knotens "Text Mesh Pro"

  1. Ziehen Sie einen Verbinder aus dem Steuerelementausgabeport des Game-Objekts: Legen Sie den aktiven Knoten fest, und erstellen Sie dann einen neuen Text Mesh Pro: Textknoten festlegen. (Suchen Sie im Fuzzy Finder nach festgelegten Text.) Platzieren Sie sie auf der oberen Zeile rechts neben dem Game-Objekt: Den aktiven Knoten festlegen.

    Screenshot einer Beschreibung der Videowiedergabe

  2. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: Bezeichnungsknoten , und verbinden Sie ihn dann mit dem oberen Dateneingabeport auf dem Text Mesh Pro: Textknoten festlegen.

  3. Geben Sie im Textfeld für den Knoten "Stopp" ein.

    Screenshot einer Beschreibung der Videowiedergabe

Fügen Sie die Knoten hinzu, um den Videostopp zu beenden.

Nur drei weitere Knoten für dieses Diagramm! Wir müssen die falsche Bedingung für die Schaltfläche einrichten. Wenn die Schaltfläche während der Wiedergabe des Videos geklickt wird, wird die Variable "Wiedergabe" zu "false" und bewirkt, dass das Video beendet wird und die Schaltflächenbeschriftung erneut in "Wiedergeben" geändert wird.

Hier können wir eine Verknüpfung machen.

  1. Klicken Sie mit ctrl-click the three nodes in the top row that make up the "if true" flow.

    Screenshot einer Beschreibung der Videowiedergabe

  2. Klicken Sie mit der rechten Maustaste in das Skriptdiagramm, und wählen Sie dann im Popupmenü "Duplikatauswahl" aus.

  3. Ziehen Sie die duplizierten Knoten im Diagramm nach unten, und platzieren Sie sie unter der Variablenzeile.

    Screenshot einer Beschreibung der Videowiedergabe

Einrichten der Knoten "if false"

  1. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: Videoknoten , und verbinden Sie ihn dann mit dem oberen Dateneingabeport des ersten Spielobjekts: Legen Sie den aktiven Knoten in der unteren Zeile von Knoten fest.

    Screenshot einer Beschreibung der Videowiedergabe

  2. In demselben ersten Spielobjekt: Legen Sie den aktiven Knoten fest, deaktivieren Sie "Wert".

  3. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: VideoStill-Knoten, und verbinden Sie ihn dann mit dem oberen Dateneingabeport des zweiten Spielobjekts: Legen Sie den aktiven Knoten in der unteren Zeile von Knoten fest.

  4. Wählen Sie in diesem zweiten Spielobjekt: Den aktiven Knoten festlegen, und wählen Sie "Wert" aus.

  5. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: Bezeichnungsknoten , und verbinden Sie ihn dann mit dem oberen Dateneingabeport des Text Mesh Pro: Legen Sie den Textknoten rechts fest.

  6. In demselben Text Mesh Pro: Textknoten festlegen, ändern Sie den Text von "Anhalten " in "Wiedergeben".

  7. Ziehen Sie einen Verbinder aus dem Ausgabeport "False" des Knotens If , und verbinden Sie ihn dann mit dem Steuerelementeingabeport des ersten Game-Objekts: Legen Sie den aktiven Knoten in der unteren Zeile von Knoten fest.

    Screenshot einer Beschreibung der Videowiedergabe

Freigeben der Videoplayerinteraktionen mit anderen Benutzern in der Benutzeroberfläche

Es kann vorkommen, dass die Ereignisse eines Skripts nur von dem Teilnehmer erlebt werden sollen, der die Ereignisse auslöst, und andere Zeiten, in denen die Ereignisse von allen Teilnehmern der Szene erlebt werden sollen. Sie können dies mit der Komponente "Lokaler Skriptbereich" steuern.

  1. Stellen Sie in der Hierarchie sicher, dass PlayVideoButton ausgewählt ist.

  2. Klicken Sie im Inspektor auf die Schaltfläche "Komponente hinzufügen", und fügen Sie dann den lokalen Skriptbereich hinzu.

    Screenshot einer Beschreibung der Videowiedergabe

In diesem Lernprogramm möchten wir, dass alle Teilnehmer in der Erfahrung alle Interaktionen mit dem Videoplayer sehen und das Video selbst wiedergeben und anhalten können. Um dies sicherzustellen, stellen Sie sicher, dass die Option "Visuelle Skriptvariablen freigeben" für diese Option "Spielobjekt " ausgewählt ist. Im Informationsfeld unter dieser Option erfahren Sie, was freigegeben wird und was lokal bleibt.

Screenshot einer Beschreibung der Videowiedergabe

Testen Ihrer Arbeit

  1. Speichern Sie das Projekt in Unity, und drücken Sie dann die Unity Editor-Wiedergabeschaltfläche.

  2. Klicken Sie im Spielfenster auf die Schaltfläche "Wiedergeben " unter dem Videoplayer. Dies bewirkt, dass sich die Beschriftung auf der Schaltfläche in "Stopp " ändert, und ein kurzes Video zu Windturbinen, die auf dem Bildschirm über der Schaltfläche wiedergegeben werden.

    Screenshot einer Beschreibung der Videowiedergabe

  3. Wenn Sie mit dem Ansehen des Videos fertig sind, drücken Sie die Schaltfläche, die Sie erneut bearbeitet haben (jetzt ist die Beschriftung beendet).

  4. Drücken Sie die Schaltfläche "Wiedergabe" des Unity-Editors, um den Wiedergabemodus zu beenden.

Station 3.2: Auslösen eines Infodialogfelds

Für dieses Feature verbessern wir ein vorhandenes visuelles Skript, das bewirkt, dass ein Infodialogfeld angezeigt wird, wenn der Avatar eine Schaltfläche drückt.

  1. Reduzieren Sie in der Hierarchie das 3.1 -- Videospielobjekt .

  2. Beachten Sie im Szenenfenster , dass sich die Infodialogfeld-Station rechts neben der 3.1 -- Videowiedergabestation befindet. Passen Sie die Ansicht so an, dass Sie die Station 3.2 deutlich sehen können.

    Screenshot einer Computerbeschreibung

  3. Erweitern Sie im Inspektor das GameObject mit dem Namen 3.2 – Infodialogfeld.

  4. Wählen Sie in der Hierarchie InfoButtonWrapper aus.

    Screenshot von 3.2 – Info_Dialog GameObject-Hierarchie mit ausgewählter Information_Button

    Beachten Sie im Inspektor, dass InfoButtonWrapper die Komponente "Lokaler Skriptbereich" angefügt hat und dass die visuellen Skriptvariablen für dieses Spielobjekt nicht ausgewählt sind.

    Screenshot von 3.2 – Info_Dialog GameObject-Hierarchie mit ausgewählter Information_Button

    Dies liegt daran, dass die Schaltfläche ausgeblendet wird, nachdem ein Teilnehmer auf die Schaltfläche klickt, mit der das Infodialogfeld angezeigt wird. Wenn diese Option ausgewählt wurde, wird die Schaltfläche für jeden in der Szene ausgeblendet, und das möchten wir nicht.

  5. Navigieren Sie im Inspektor zur Skriptcomputerkomponente, die das Dialogfelddiagramm anzeigen enthält, und klicken Sie dann auf die Schaltfläche "Diagramm bearbeiten".

    Screenshot des Inspektors des Information_Button

  6. Ziehen Sie im Diagramm einen Verbinder aus dem True Control Output Port des If-Knotens , und erstellen Sie dann ein neues Microsoft Mesh: Dialogknoten anzeigen. (Suchen Sie im Fuzzy Finder nach dem Dialogfeld " Anzeigen".)

    Ein Screenshot, der zeigt, ob knoten eine Verbindung mit dem neuen Knoten

  7. Klicken Sie im Knoten "Dialogfeld anzeigen" auf das Feld "Nachricht ", und ersetzen Sie dann das Wort "Nachricht " durch diesen Satz:

    Wussten Sie, dass die größte Windturbine der Welt über Flügel länger als ein Fußballfeld verfügt?

    Dies ist die Meldung, die im Infodialogfeld angezeigt wird.

    Screenshot mit dem Knoten

  8. Wählen Sie die Dropdownliste aus, in der derzeit "OK" angezeigt wird, und deaktivieren Sie dann in der Popupliste "OK", und wählen Sie "Weiter" aus. Dadurch wird dem Infodialogfeld eine Schaltfläche "Weiter " hinzugefügt, auf die der Benutzer klicken kann, um das Dialogfeld zu schließen, nachdem er die Nachricht gelesen hat.

    Screenshot mit dem Knoten

Testen Ihrer Arbeit

  1. Speichern Sie das Projekt im Unity-Editor, und drücken Sie dann die Schaltfläche "Unity-Editor wiedergeben".

  2. Verwenden Sie die Navigationstasten, um Ihren Avatar von der Schaltfläche zu entfernen. Beachten Sie, dass, wenn Ihr Avatar eine bestimmte Entfernung entfernt ist, die Schaltfläche gedreht wird und nicht ausgewählt werden kann.

  3. Gehen Sie zur Schaltfläche. An einem bestimmten Punkt wird die Schaltfläche nicht mehr gedreht und signalisiert, dass Sie sie jetzt auswählen können.

  4. Wählen Sie die Schaltfläche aus. Das Infodialogfeld wird angezeigt und zeigt die Meldung an, die Sie zuvor zum Knoten "Dialogfeld anzeigen" hinzugefügt haben.

    Hinweis

    Das Erscheinungsbild des Infodialogfelds im Wiedergabemodus unterscheidet sich davon, wie es in Mesh angezeigt wird, wo es ähnlich wie die anderen Panels auf der Kugelterrasse angezeigt wird.

  5. Wenn Sie mit dem Infodialogfeld fertig sind, klicken Sie auf die Schaltfläche "Weiter" . Beachten Sie, dass sie nach dem Klicken auf die Schaltfläche ausgeblendet wird. Um die Schaltfläche erneut zu verwenden, müssen Sie den Wiedergabemodus beenden und dann erneut aufrufen.

    Tipp

    Der Abstand und die auslösenden Elemente, die hier wirksam sind, werden durch die Komponenten des ProximityDetector GameObject bestimmt.

    Ein Screenshot mit dem ProximityDetector GameObject in der Hierarchie.

  6. Drücken Sie die Schaltfläche "Wiedergabe" des Unity-Editors, um den Wiedergabemodus zu beenden.

Station 3.3: Teleport zum Turbinengenerator

Für dieses Feature fügen wir einige Knoten zu einem Skriptdiagramm hinzu, mit dem Teilnehmer in der Szene teleportiert werden können. Wenn ein Teilnehmer die Taste drückt, wird er von seinem aktuellen Standort an Station 3.3 zu einer erhöhten Plattform teleportiert, die an einen Windturbinengenerator angeschlossen ist. Anschließend können sie den Generator untersuchen.

Ein Bild mit außen, Text, Screenshot, Windmill Description automatisch generiert

Aktualisieren des Skriptdiagramms

  1. Beachten Sie im Szenenfenster , dass sich die Station 3.3 - Teleport zu Turbine rechts neben der 3.2 -- Info-Dialogtriggerstation befindet. Passen Sie die Ansicht so an, dass Sie die Station 3.3 deutlich sehen können.

  2. Reduzieren Sie in der Hierarchie das 3.2 - Infodialog-GameObject , und erweitern Sie dann das 3.3 - Teleport GameObject.

    Screenshot

    Die Schaltfläche ist für Sie eingerichtet---We müssen nur die Knoten im Skriptdiagramm hinzufügen, die ihm das Teleportverhalten verleihen.

  3. Erweitern Sie in der Hierarchie das ChapterLabel GameObject, und wählen Sie dann das TeleportToWindTurbineButton GameObject aus.

    Screenshot

    Beachten Sie, dass im Inspektor eine Script Machine-Komponente namens "Teleport to Location" mit einem Skript namens "TeleportToLocationButtonStart" vorhanden ist. Die Option "Quelle " ist auf Graph festgelegt, was bedeutet, dass Script Graph im Projekt als unabhängige Datei gespeichert wird.

    Screenshot

  4. Klicken Sie auf die Schaltfläche "Diagramm bearbeiten". Wie im vorherigen Kapitel hat unser Diagramm bereits einige Knoten für Sie eingerichtet.

    Screenshot

Wir fügen diesem Script Graph in einem Moment Knoten hinzu.

Erstellen eines Reisepunkts und Hinzufügen eines Verweises darauf

Was ist also ein "Reisepunkt", vielleicht fragen Sie ... Im Grunde ist es eine Komponente, die Sie verwenden können, um einen Punkt im Raum zu definieren, zu dem spawnen oder teleportieren. Normalerweise würden Sie zuerst eine Reisegruppe erstellen und dann einen oder mehrere Reisepunkte hinzufügen. Wir haben die Reisegruppe bereits für Sie in diesem Projekt erstellt, daher fügen wir in den nachstehenden Schritten einen Reisepunkt zu dieser Gruppe hinzu. Wir verwenden diesen Reisepunkt dann als Ort, zu dem der Avatar wechselt, wenn er auf die Teleport-Schaltfläche klickt. Weitere Informationen finden Sie in unserem Artikel " Avatar-Spawn- und Teleportpunkte erstellen".

  1. Erstellen Sie in der Hierarchie ein neues leeres GameObject als untergeordnetes Objekt in TravelGroup , und benennen Sie es dann in "TeleportLocationWindTurbine" um.

    Screenshot

  2. Klicken Sie im Inspektor auf die Schaltfläche "Komponente hinzufügen", und suchen Sie dann nach der Komponente "Reisepunkt", und fügen Sie sie hinzu.

    Screenshot

  3. Geben Sie im Inspektor in der Transform-Komponente die folgenden Werte ein:

    Position:

    X = 6
    Y = 56
    Z = 60

    Drehung:

    X = 0
    Y = 255
    Z = 0

    Screenshot

    Der Avatar wird an diesen Ort teleportieren.

  4. Machen Sie im Inspektor das TeleportLocationWindTurbine GameObject inaktiv, indem Sie das Kontrollkästchen neben dem Namen deaktivieren. Wenn mehrere TravelPoint-Objekte zur Laufzeit aktiv sind, wählt Unity zufällig einen der aktiven Reisepunkte als Spawningpunkt für den Avatar aus. Wir möchten sicherstellen, dass der Avatar an dem Punkt, der durch das TeleportLocationChapter3 GameObject angegeben ist, spawnsiert, sodass es sich um den einzigen aktiven Reisepunkt sein sollte. Als Ergebnis der Inaktivisierung erscheint TeleportLocationWindTurbine in der Hierarchie abgeblendet.

    Screenshot

Erstellen und Hinzufügen einer Teleport Location-Objektvariable

  1. Erstellen Sie in script Graph Blackboard eine neue Objektvariable: Geben Sie den Namen "TeleportLocation" in das Feld (Neuer Variablenname) ein, und klicken Sie dann auf die Schaltfläche "+".

  2. Legen Sie den Typ der Objektvariablen auf "Game-Objekt" fest.

  3. Ziehen Sie aus der Hierarchie das TeleportLocationWindTurbine GameObject, und legen Sie es dann im Feld "Wert " der neuen Variablen ab.

    ________________

  4. Ziehen Sie die Button-Objektvariable aus der Tafel , und legen Sie sie dann im Skriptdiagramm ab, um sie als Knoten hinzuzufügen. Platzieren Sie ihn unter dem Knoten "Wenn ".

    ________________

Hinzufügen der Teleportknoten

  1. Ziehen Sie einen Verbinder aus dem Ausgabesteuerungsport "True" des If-Knotens , und erstellen Sie dann einen neuen Knoten namens "Game Object: Set Active". (Suchen Sie im Fuzzy Finder nach "Set aktiv".)

  2. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: TeleportLocation-Knoten , und verbinden Sie ihn dann mit dem ersten Dateneingabeport des Game-Objekts: Set Active node.

    Screenshot

  3. Wählen Sie die Wertoption des Knotens aus, um ihn zu aktivieren.

Hinzufügen des Knotens "Reisepunkt"

  1. Ziehen Sie einen Verbinder aus dem Steuerelementausgabeport des Game-Objekts: Legen Sie den aktiven Knoten fest, und erstellen Sie dann einen neuen Knoten namens "Reisepunkt: Reise zu Punkt". (Suchen Sie im Fuzzy Finder nach Reisepunkt: Reisen.)

  2. Ziehen Sie einen Verbinder aus dem Datenausgabeport der Get Object Variable: TeleportLocation-Knoten , und verbinden Sie ihn dann mit dem Dateneingabeport des Reisepunkts: Reise zum Punktknoten .

    Screenshot

Damit wird das Diagramm abgeschlossen.

Testen Ihrer Arbeit

  1. Speichern Sie das Projekt im Unity-Editor, und drücken Sie dann die Schaltfläche "Unity-Editor wiedergeben".

  2. Wechseln Sie zu Station 3.3, und klicken Sie dann auf die Teleport-Taste , um bis zum Windturbinengenerator zu teleportieren.

    Screenshot

    Screenshot einer automatisch generierten Computerbeschreibung

  3. Wählen Sie im Feld 3.3 -- Generator-Informationsfeld die Schaltfläche "Generator einblenden/ausblenden" aus. Ein Fenster wird auf der Seite der Windturbine geöffnet, und Sie können den Generator sehen.

    Screenshot einer Computerbeschreibung

Sie können den Generator näher herangehen und einen Blick haben. Es ist ziemlich cool! Wenn Sie fertig sind, navigieren Sie wieder heraus, und drücken Sie dann die Schaltfläche "Generator einblenden/ausblenden". Dadurch wird das Fenster geschlossen.

Gehe zu Kapitel 4

An diesem Punkt wäre der Teilnehmer an der Erfahrung bereit, zu Kapitel 4 zu wechseln und mehr über Windkraftanlagenaktivitäten im Zusammenhang mit der Physik zu erfahren. Genau wie bei Kapitel 3 gibt es eine Kugelterrasse, die die Stationen für Kapitel 4 enthält. Vorgehensweise:

  1. Drehen Sie sich in entgegengesetzter Richtung vom Windturbinengenerator und gehen Sie in Richtung 3.3 -- Wechseln Sie zu Kapitel 4 Informationsfeld.

    Screenshot einer Computerbeschreibung

  2. Drücken Sie die Taste "Teleport zu Kapitel 4 ".

    Screenshot einer Computerbeschreibung

    Wie angekündigt, platziert dies den Avatar vor den Stationen für Kapitel 4 und Gitterphysik.

    Ein Bild mit Text, Screenshot, Multimediasoftware, Grafiksoftwarebeschreibung automatisch generiert

Kapitel 3: Zusammenfassung

In diesem Kapitel haben Sie mesh Visual Scripting verwendet, um Features hinzuzufügen, die Teilnehmern in Ihrer Erfahrung die folgenden Aufgaben ermöglichen:

  1. Drücken Sie eine Taste, die dazu führt, dass ein Schulungsvideo über Windkraftanlagen wiedergegeben wird.

  2. Drücken Sie eine Schaltfläche, mit der die Anzeige eines Infodialogfelds zu Windturbinen ausgelöst wird.

  3. Drücken Sie eine Taste, die den Teilnehmer von Grund auf zu einer Plattform teleportiert, die an einen Windturbinengenerator angeschlossen ist, wo sie den Generator in der Nähe untersuchen können.

Nächste Schritte