Partager via


Didacticiel Mesh 101 Chapitre 3 : Ajouter de l’interactivité avec Mesh Visual Scripting



Maintenant que nous avons terminé la phase d’installation, passons à rendre votre GameObjects interactif ! Dans ce chapitre, nous allons nous plonger dans Mesh Visual Scripting, que vous pouvez utiliser pour ajouter une logique personnalisée à votre environnement.

Notes

  • Il existe deux types de script mesh : Mesh Cloud Scripting, qui utilise du code C#, et Mesh Visual Scripting, où vous créez un graphe de script, puis ajoutez des nœuds (également appelés unités) dans une séquence pour créer votre logique de codage. Cette version du didacticiel Mesh 101 utilise Mesh Visual Scripting ; la version précédente utilisait Mesh Cloud Scripting.

  • Le script maillage n’est pas obligatoire pour chaque environnement, mais vous en aurez besoin pour les fonctionnalités que nous allons ajouter ici : rendre un bouton interactif, déclencher une fenêtre contextuelle de texte d’information et se téléporter autour de la scène.

Station 3.1 : Create un bouton interactif

Pour notre première tâche, nous voulons créer un bouton qui lira une vidéo quand elle est enfoncée par un avatar. L’avatar peut ensuite appuyer sur le même bouton pour arrêter la vidéo.

  • Dans la fenêtre Scène , accédez à la terrasse sphère qui contient les stations du chapitre 3, puis ajustez la vue pour que vous regardiez la première station, 3.1 - Lecture vidéo, comme illustré ci-dessous.

Capture d’écran de la fenêtre lecture vidéo dans la fenêtre de scène Unity montrant la première station dans l’environnement

Comme vous pouvez le voir, un écran vidéo est déjà en place, mais il a besoin d’un bouton Lire/Arrêter. Comme l’explique la zone de texte de la station, nous allons créer un graphe de script avec une logique de bouton afin que le bouton puisse être utilisé pour activer et désactiver le videoPlayer et modifier le texte du bouton.

Ajouter le bouton à la scène

  1. Dans Unity, assurez-vous que l’objet GameObject nommé Chapter3 et son objet enfant nommé 3.1 - Vidéo sont développés.

    Capture d’écran de la hiérarchie Unity montrant les dossiers vidéo Chapitre3 et 3.1 développés

  2. Dans la fenêtre Projet , recherchez le préfabriqué ButtonBase . Veillez à choisir TOUT pour le filtre Recherche.

    Capture d’écran du terme Buttonbase recherché dans la fenêtre Projet dans Unity

  3. Faites glisser ButtonBase à partir de la fenêtre Projet , puis, dans la hiérarchie, déposez-la sur l’objet GameObject nommé 3.1 -- Vidéo afin que ButtonBase soit placé en tant qu’enfant dans la version 3.1 -- Vidéo.

    Capture d’écran de Buttonbase déplacée dans la hiérarchie et ajoutée à l’objet GameObject nommé 3.1 -- Vidéo

    Assurez-vous que les valeursde la position de transformation> pour ButtonBase sont 0, 0, 0.

    ButtonBase est placé dans la scène un peu plus bas que l’emplacement souhaité. Nous allons arranger ça.

  4. Vérifiez que ButtonBase est sélectionné dans la hiérarchie.

  5. Dans l’inspecteur, remplacez la valeur Yde la position>detransformation> par « 1 ».

Parfait ! Maintenant , ButtonBase est correctement situé juste en dessous de l’écran vidéo.

Capture d’écran d’Unity montrant le ButtonBase sous l’objet BackplateBase

Renommer le bouton

  • Avec ButtonBase sélectionné, dans l’inspecteur, remplacez le nom de ButtonBase par « PlayVideoButton ».

    Capture d’écran d’Unity montrant ButtonBase renommé PlayVideButton

Modifier l’étiquette du bouton

À l’heure actuelle, le texte sur le bouton indique Étiquette. Nous allons remplacer cela par « Play ».

  1. Dans la hiérarchie, développez PlayVideoButton GameObject pour afficher son objet enfant Button, puis Button pour afficher ses objets enfants, puis sélectionnez l’objet Enfant Label .

    Capture d’écran d’un Unity montrant une hiérarchie avec Étiquette pour Bouton mise en évidence.

  2. Dans l’inspecteur, accédez au composant TextMeshPro -- Text , puis, dans la zone Entrée de texte , remplacez le texte par « Lecture ».

    Capture d’écran d’Unity montrant l’inspecteur pour l’étiquette de bouton avec le texte Lecture mis en évidence.

Create le script visuel pour le bouton

  1. Dans la hiérarchie, vérifiez que PlayVideoButton est sélectionné.

  2. Dans l’inspecteur, cliquez sur Ajouter un composant, puis sélectionnez Machine de script.

    Notez que deux nouveaux composants ont été ajoutés dans l’inspecteur : Machine de script et Variables. Il existe également une nouvelle fenêtre nommée Mesh Visual Scripting Diagnostics en bas de l’inspecteur. Cette fenêtre vous donne des commentaires sur votre script visuel et peut être utile pour résoudre les problèmes.

    Capture d’écran d’un unity montrant deux composants qui ont été ajoutés, Script Machine et Variables.

  3. Notez que dans le composant Machine de script , l’option Source est définie sur Graph. Vous avez deux choix pour Source : Graph et Incorporer. Cliquez sur la liste déroulante Source , puis sélectionnez Incorporer.

    Conseil

    Graph et Embed présentent chacun des avantages et des inconvénients ; Vous pouvez en savoir plus à leur sujet dans l’article Machine de script Unity. Nous choisissons d’utiliser Incorporer ici, car, entre autres, vous pouvez référencer directement vos nœuds de scène sans créer de variables Object intermédiaires.

  4. Dans le composant Machine de script , entrez un nom dans le champ Titre du graphique : « Comportement du lecteur vidéo ».

  5. Entrez une description dans le champ Résumé du graphique : « Définition du comportement du lecteur vidéo ».

Configuration du graphe de script

  1. Dans le composant Machine de script , cliquez sur Modifier le graphique. La fenêtre Graphe de script s’ouvre. Faites-le glisser et placez-le en regard de l’onglet Projet et console , s’il n’est pas déjà là, afin que nous puissions voir le graphe de script et la fenêtre Scène en même temps.

    Capture d’écran d’Unity montrant le composant Machine de script mis en évidence avec le graphe de script ouvert.

    À mesure que nous ajoutons des nœuds, vous voudrez peut-être plus d’espace dans la fenêtre ; vous pouvez cliquer sur le bouton à trois points, puis sélectionner Agrandir pour ce faire, ou cliquer sur le bouton Plein écran dans le coin supérieur droit de la fenêtre.

  2. Nous n’avons pas besoin des nœuds OnStart et OnUpdate par défaut ; supprimez-les.

Détecter si vous cliquez sur le bouton

Nous pouvons considérer ce graphe de script comme ayant trois objectifs main :

  1. Détectez quand le bouton Lecture/Arrêt du lecteur vidéo est cliqué.
  2. Lorsque vous cliquez dessus, lisez la vidéo.
  3. Lorsque vous cliquez à nouveau dessus, arrêtez la vidéo.

Le premier objectif, détecter quand le bouton est cliqué, nécessite trois nœuds. Le GameObject dans le projet qui « écoute » et réagit à un clic est Button. Ajoutons-le au graphe de script.

Notes

Un nœud est également appelé unité dans Visual Scripting. Dans ce tutoriel, nous allons continuer à utiliser le terme nœud.

  1. Faites glisser le bouton à partir de la hiérarchie , puis déposez-le dans le graphe de script.

    Capture d’écran d’Uniy montrant le bouton déplacé vers le graphique de script.

  2. Dans le menu Nœud , sélectionnez Bouton. Nœud littéral d’objet de jeu référençant cet objet est ajouté au graphique.

    Capture d’écran d’Unity montrant le graphe de script sélectionné et l’objet bouton affiché dans la fenêtre Graphe de script.


CONSEIL : Vous pouvez prendre un moment ici pour examiner certains des composants du GameObject bouton :

Configuration interagissante du maillage : cela fait de Button un objet avec lequel vous pouvez interagir. Ce composant permet de suivre les interactions. Notez que dans l’image ci-dessous, certains paramètres de « pointage » sont choisis. Vous pouvez en savoir plus sur ce composant dans notre article intitulé Saisir, tenir et lever avec Interactables.

Capture d’écran d’Unity montrant la fenêtre d’installation interactive mesh et les paramètres inclus.

Machine de script : il s’agit d’un graphique de script nommé Button Base Behaviour.

Capture d’écran d’Unity montrant la fenêtre de comportement de la base de bouton pour l’ordinateur de script.

Si vous passez en mode Lecture, vous verrez qu’un nouveau composant nommé Mesh Interactable Body est ajouté à Button.

Capture d’écran d’Unity montrant le nouveau composant Mesh Interactable Body ajouté au composant Button.

Ce composant est ajouté automatiquement au moment de l’exécution à des corps interagissants ; il expose diverses propriétés à Visual Scripting, telles que IsHovered et IsSelected, qui seront utiles dans un instant.


Dans le graphe de script, ajoutons un nœud qui nous indique quand le bouton est sélectionné.

  1. Si nécessaire, quittez le mode Lecture, puis sélectionnez PlayVideoButton dans la hiérarchie pour vous assurer que vous voyez son graphique incorporé dans la fenêtre Graphe de script .

  2. Dans le graphique de script, cliquez longuement sur le port d’extérieur du nœud Game Object , puis relâchez le bouton de la souris. Le Finder flou s’ouvre. AVERTISSEMENT : une fois que vous avez ouvert le Finder flou, ne cliquez nulle part en dehors de l’interface Unity. Cela ferme le Finder flou et entraîne un comportement imprévisible dans le graphe de script.

    Capture d’écran d’une description d’une lecture vidéo

  3. Recherche pour Est sélectionné, puis, dans la liste, sélectionnez Mesh Interactable Body : IsSelected.

    Capture d’écran d’une description d’une lecture vidéo

    Remarque : ce nœud génère une valeur booléenne ; vous pouvez le confirmer dans l’inspecteur Graph.

  4. Faites glisser un connecteur à partir du port de sortie du nœud Est sélectionné , puis créez un nœud appelé Microsoft Mesh : On State Changed. (Dans le Finder flou, recherchez l’état modifié.)

    Capture d’écran d’une description d’une lecture vidéo

Il s’agit de nos trois nœuds de détection de clic par bouton. Le nœud Est sélectionné commence par une valeur False, mais lorsque vous cliquez sur le bouton, la valeur passe à True et est passée au nœud On State Changed . Ce nœud déclenche ensuite les nœuds lecture/arrêt que nous ajouterons ensuite.

Lire ou arrêter la vidéo

Si On State Changed a la valeur true, la vidéo est lue. S’il est déjà en cours de lecture et que le bouton est enfoncé, à l’état modifié passe à une valeur false et la vidéo cesse de lire. L’étape suivante consiste à ajouter un nœud if pour déterminer ce flux.

  1. Faites glisser un connecteur à partir du port sortie de contrôle du nœud Sur l’état modifié , puis créez un nœud if . (Dans le Finder flou, recherchez if.)

    Capture d’écran d’une description d’une lecture vidéo

  2. Faites glisser un connecteur du port de sortie de données du nœud État modifié vers le port d’entrée de données du nœud if .

    Capture d’écran d’une description d’une lecture vidéo

Create une variable pour déterminer si la vidéo est en cours de lecture ou non

  1. Dans le Tableau noir, accédez à l’onglet Objet, puis créez une variable nommée « isPlaying ». Définissez le type « Boolean » et laissez la zone Valeur case activée désélectionnée. Cela donne au booléen la valeur par défaut false.

    Capture d’écran d’une description d’une lecture vidéo

  2. Faites glisser un connecteur à partir du port True Control Output du nœud If , puis créez un nœud Définir la variable d’objet . (Dans le Finder flou, recherchez l’objet set.).

    Capture d’écran d’une description d’une lecture vidéo

  3. Dans le nœud Définir une variable d’objet , cliquez sur la liste déroulante nom de la variable, puis sélectionnez IsPlaying.

    Capture d’écran d’une description d’une lecture vidéo

    La variable isPlaying doit effectuer une double tâche ici. Pour vous assurer que isPlaying a toujours la valeur correcte, nous allons lui fournir une entrée à partir d’un nœud Negate .

  4. Faites glisser un connecteur à partir du port d’entrée de données du nœud Set Object Variable : isPlaying, puis créez un nœud Negate . (Dans le Finder flou, recherchez negate.)

    Capture d’écran d’une description d’une lecture vidéo

  5. Faites glisser un connecteur à partir du port d’entrée de données du nœud Negate , puis créez un nœud Get Object Variable . (Dans le Finder flou, recherchez obtenir la variable d’objet.)

  6. Dans le nœud Obtenir la variable d’objet , cliquez sur la liste déroulante nom de la variable, puis sélectionnez IsPlaying.

    Capture d’écran d’une description d’une lecture vidéo

Le nœud Negate modifie la valeur d’IsPlaying à l’opposé de ce sur quoi elle est actuellement définie. Lorsque la scène démarre, isPlaying est false (valeur par défaut). Lorsque vous cliquez sur le bouton Lire/Arrêter, le nœud Negate entraîne la définition de isPlaying dans le nœud Définir la variable d’objet sur true, ce qui rend la vidéo lue. Lorsque le bouton est à nouveau cliqué, le nœud Negate entraîne la réinitialisation d’isPlaying sur false, ce qui entraîne l’arrêt de la vidéo.

Activation ou désactivation de la vidéo

Nous allons maintenant ajouter les nœuds qui détectent si isPlaying change ; la vidéo sera lue ou s’arrêtera en fonction de ce changement.

  1. Dans la partie inférieure du graphique, ajoutez un nœud Get Object Variable et définissez sa valeur sur isPlaying. (Vous pouvez cliquer avec le bouton droit dans le graphique, puis sélectionner Ajouter un nœud.)

    Capture d’écran d’une description d’une lecture vidéo

  2. Faites glisser un connecteur à partir du port de sortie de données du nœud Get Object Variable : isPlaying, puis créez un nœud Sur l’état modifié . (Dans le Finder flou, recherchez l’état modifié.)

    Capture d’écran d’une description d’une lecture vidéo

  3. Faites glisser un connecteur à partir du port de sortie de contrôle du nœud État modifié , puis créez un nœud If . (Dans le Finder flou, recherchez if.)

  4. Faites glisser un connecteur à partir du port de sortie de données du nœud État modifié , puis connectez-le au port d’entrée de données du nœud if .

    Capture d’écran d’une description d’une lecture vidéo

Mise en lecture de la vidéo

  1. Dans la hiérarchie, développez VideoPlayer GameObject et notez qu’il a deux objets enfants : Video et VideoStill.

  2. Sélectionnez Vidéo , puis, dans l’inspecteur, notez les éléments suivants :

    • Vidéo a un composant nommé Lecteur vidéo, qui a une vidéo jointe nommée WindTurbine.

    Capture d’écran d’une description d’une lecture vidéo

    • La vidéo est inactive (la zone de case activée en regard de son nom est vide).
  3. Dans la hiérarchie, sélectionnez VideoStill GameObject, puis, dans l’inspecteur, notez les éléments suivants :

    • Une image fixe est attachée à VideoStill.

    • VideoStill est actif (la zone de case activée en regard de son nom est sélectionnée).

    Capture d’écran d’une description d’une lecture vidéo

Lorsque la scène démarre, l’écran vidéo affiche une image fixe (en raison du fait que VideoStill est actif) et ne lue pas de vidéo (ce qui est dû à l’inactivité de la vidéo ). Lorsque le participant appuie sur le bouton Lire/Arrêter pendant qu’il affiche Lecture, la vidéo est active, ce qui entraîne la lecture de la vidéo et rend simultanément VideoStill inactive, ce qui masque l’image fixe. L’étiquette du bouton passe également de Lecture à Arrêter Lorsque le participant appuie à nouveau sur le bouton, la vidéo est rendue inactive, l’arrêt de la vidéo et VideoStill est redevenir actif, ce qui permet à l’écran vidéo d’afficher à nouveau l’image fixe.

Les nœuds restants de notre graphe rendent tout cela possible.

  1. Faites glisser un connecteur à partir du port True Control Output du nœud if et créez un nouvel objet Game Object : Set Active node. (Dans le Finder flou, recherchez la valeur active.)

  2. Dans le nœud Objet jeu : Définir actif , cliquez sur le bouton rond dans le champ GameObject, puis, dans la fenêtre Sélectionner GameObject , recherchez et sélectionnez Vidéo.

  3. Sélectionnez la zone Valeur case activée du nœud, ce qui rend le nœud actif.

    Capture d’écran d’une description d’une lecture vidéo

  4. Faites glisser un connecteur à partir du port Sortie de contrôle du nœud Game Object : Set Active , puis créez un autre objet de jeu : Définir le nœud Actif .

  5. Dans le nouveau nœud Objet de jeu : Définir actif , cliquez sur le bouton rond dans le champ GameObject (qui affiche actuellement ceci), puis, dans la fenêtre Sélectionner gameObject , recherchez et sélectionnez VideoStill.

  6. Conservez la zone Valeur case activée non sélectionnée. Cela rend le nœud inactif.

    Maintenant, lorsque vous cliquez sur le bouton, la vidéo est lue et l’image fixe est masquée. Il nous faut juste une chose de plus dans cette séquence. Étant donné que le bouton Lire/Arrêter est un bouton bascule, nous devons nous assurer qu’une fois que le participant a cliqué sur Lire, l’étiquette du bouton devient Arrêter, puis, lorsqu’elle est à nouveau cliquée, l’étiquette revient à Lire. Pour ce faire, nous allons ajouter un nœud TextMeshPro .

  7. Faites glisser un connecteur à partir du port de sortie de contrôle du dernier nœud Jeu Objet : Définir le nœud Actif , puis créez un nœud Text Mesh Pro : Set Text . (Dans le Finder flou, recherchez le texte défini.)

    Capture d’écran d’une description d’une lecture vidéo

    Nous devons définir le GameObject cible de ce nœud sur Label. Toutefois, il existe de nombreux GameObjects « Label » dans le projet, et ils se ressemblent tous dans la liste contextuelle du nœud. Nous allons donc ajouter cet objet à l’aide de la méthode glisser-déplacer.

  8. Faites glisser l’objet Label GameObject enfant de l’objet Button à partir de la hiérarchie , puis déposez-le dans le premier champ du nœud Set Test .

    Capture d’écran d’une description d’une lecture vidéo

  9. Dans le champ de texte du nœud, tapez « Stop ».

    Capture d’écran d’une description d’une lecture vidéo

Arrêt de la vidéo

Il suffit de trois nœuds de plus pour ce graphique ! Nous devons configurer la condition false pour le bouton, de sorte que si le bouton est cliqué pendant la lecture de la vidéo, la variable isPlaying devient false et entraîne l’arrêt de la vidéo et l’étiquette du bouton à nouveau en lecture .

Nous pouvons prendre un raccourci ici.

  1. Cliquez sur les trois derniers nœuds que vous avez ajoutés. Cette opération les sélectionne.

  2. Cliquez avec le bouton droit dans le graphe de script, puis, dans le menu contextuel, sélectionnez Dupliquer la sélection.

  3. Faites glisser les nœuds dupliqués vers un espace vide dans le graphique juste en dessous des nœuds que vous avez dupliqués.

    Capture d’écran d’une description d’une lecture vidéo

  4. Faites glisser un connecteur à partir du port De sortie de contrôle faux du dernier nœud if et connectez-le au port d’entrée de contrôle du premier objet Game : Définir le nœud actif dans l’ensemble de nœuds dupliqué.

  5. Dans ce même premier objet de jeu : Définir le nœud actif (celui qui contient la vidéo), désélectionnez Value.

  6. Dans le deuxième objet de jeu : Définir le nœud Actif dans l’ensemble en double (celui qui contient VideoStill), sélectionnez Valeur.

  7. Dans le nœud Définir le texte , remplacez le texte de Stop à Play.

    Capture d’écran d’une description d’une lecture vidéo

Partager les interactions du lecteur vidéo avec d’autres personnes de l’expérience

Il peut arriver que vous souhaitiez que les événements d’un script soient vécus uniquement par le participant qui déclenche les événements, et d’autres fois où vous souhaitez que les événements soient vécus par tous les participants à la scène. Vous pouvez contrôler cela avec le composant Étendue du script local .

  1. Dans la hiérarchie, vérifiez que PlayVideoButton est sélectionné.

  2. Dans l’inspecteur, cliquez sur le bouton Ajouter un composant , puis ajoutez l’étendue du script local.

    Capture d’écran d’une description de lecture vidéo

Pour ce tutoriel, nous voulons que tous les participants à l’expérience soient en mesure de voir les interactions avec le lecteur vidéo et de voir la vidéo elle-même lire et suspendre. Pour ce faire, vérifiez que l’option Partager les variables de script visuel sur cet objet jeu est sélectionnée. La zone d’informations sous cette option vous indique ce qui est partagé et ce qui reste local.

Capture d’écran d’une description de lecture vidéo

Tester votre travail

  1. Dans Unity, enregistrez le projet, puis appuyez sur le bouton Unity Rédacteur Lire.

  2. Dans la fenêtre Jeu , cliquez sur le bouton Lire sous le lecteur vidéo. Cela entraîne la lecture de l’étiquette sur le bouton sur Arrêter et d’une brève vidéo sur les éoliennes à lire sur l’écran au-dessus du bouton.

    Capture d’écran d’une description de lecture vidéo

  3. Lorsque vous avez terminé de regarder la vidéo, appuyez à nouveau sur le bouton que vous avez modifié (il a maintenant l’étiquette Arrêter).

  4. Appuyez sur le bouton Unity Rédacteur Lire pour quitter le mode Lecture.

Station 3.2 : Déclencher une boîte de dialogue d’informations

Pour cette fonctionnalité, nous allons améliorer un script visuel existant qui entraîne l’affichage d’une boîte de dialogue d’informations lorsque l’avatar appuie sur un bouton.

  1. Dans la hiérarchie, réduisez la version 3.1 -- Video GameObject.

  2. Dans la fenêtre Scène , notez que la station déclencheur de la boîte de dialogue d’informations se trouve à droite de la station de lecture vidéo 3.1 . Ajustez la vue afin que vous puissiez voir clairement station 3.2.

    Capture d’écran d’une description d’ordinateur

  3. Dans l’inspecteur, développez l’objet GameObject nommé 3.2 -- Boîte de dialogue d’informations.

  4. Dans la hiérarchie, sélectionnez InfoButtonWrapper.

    Capture d’écran 3.2 - Info_Dialog Hiérarchie GameObject avec Information_Button sélectionné

    Dans l’inspecteur, notez qu’InfoButtonWrapper a le composant Étendue du script local attaché et que son option Partager les variables de script visuel sur cet objet game n’est pas sélectionnée.

    Capture d’écran 3.2 - Info_Dialog Hiérarchie GameObject avec Information_Button sélectionné

    En effet, une fois qu’un participant clique sur le bouton qui fait apparaître la boîte de dialogue d’informations, le bouton est masqué. Si cette option était sélectionnée, le bouton serait masqué pour tous les participants à la scène, et nous ne le voulons pas.

  5. Dans l’inspecteur, accédez au composant Machine de script , qui contient le graphe Afficher la boîte de dialogue , puis cliquez sur le bouton Modifier le graphique .

    Capture d’écran de l’inspecteur du Information_Button

  6. Dans le graphique, faites glisser un connecteur à partir du port True Control Output du nœud If , puis créez un nouveau nœud Microsoft Mesh : Show Dialog . (Dans le Finder fuzzy, recherchez la boîte de dialogue Afficher.)

    Capture d’écran montrant si le nœud se connecte au nouveau nœud Afficher la boîte de dialogue.

  7. Dans le nœud Afficher la boîte de dialogue , cliquez sur le champ Message , puis remplacez le mot Message par la phrase suivante :

    Saviez-vous que la plus grande éolienne du monde a des pales plus longues qu’un terrain de football ?

    Il s’agit du message qui s’affichera dans la boîte de dialogue d’informations.

    Capture d’écran montrant le nœud Afficher la boîte de dialogue avec un message ajouté.

  8. Sélectionnez la liste déroulante qui affiche actuellement OK, puis, dans la liste contextuelle, désélectionnez OK , puis sélectionnez Continuer. Cela ajoute un bouton Continuer à la boîte de dialogue d’informations sur laquelle l’utilisateur peut cliquer pour fermer la boîte de dialogue une fois qu’il a terminé de lire son message.

    Capture d’écran montrant le nœud Afficher la boîte de dialogue avec un message ajouté.

Tester votre travail

  1. Dans le Rédacteur Unity, enregistrez le projet, puis appuyez sur le bouton Unity Rédacteur Lire.

  2. Utilisez les touches de navigation pour éloigner votre avatar du bouton. Notez que lorsque votre avatar est à une certaine distance, le bouton pivote et n’est pas sélectionnable.

  3. Marchez vers le bouton. À un certain moment, le bouton cesse de tourner, signalant que vous pouvez maintenant le sélectionner.

  4. Sélectionnez le bouton. La boîte de dialogue d’informations s’affiche et affiche le message que vous avez ajouté au nœud Afficher la boîte de dialogue précédemment.

    Notes

    L’apparence de la boîte de dialogue d’informations en mode Lecture est différente de la façon dont elle apparaîtra dans Mesh, où elle ressemblera beaucoup aux autres panneaux de la terrasse Sphere.

  5. Lorsque vous avez terminé la boîte de dialogue d’informations, cliquez sur son bouton Continuer . Notez qu’une fois que vous avez cliqué sur le bouton, il disparaît. Pour utiliser à nouveau le bouton, vous devez quitter, puis revenir en mode Lecture.

    Conseil

    La distance et les éléments déclencheurs en vigueur ici sont déterminés par les composants du GameObject ProximityDetector .

    Capture d’écran montrant l’objet GameObject ProximityDetector dans la hiérarchie.

  6. Appuyez sur le bouton Unity Rédacteur Lire pour quitter le mode Lecture.

Station 3.3 : Téléporter vers le générateur d’éoliennes

Pour cette fonctionnalité, nous allons ajouter des nœuds à un graphe de script qui permet aux participants de la scène de se téléporter. Lorsqu’un participant appuie sur le bouton, il est téléporté de son emplacement actuel à la station 3.3 vers une plate-forme surélevée attachée à une éolienne. Ils peuvent ensuite examiner le générateur.

Image contenant l’extérieur, le texte, la capture d’écran, la description de moulin à vent générée automatiquement

Mettre à jour le graphe de script

  1. Dans la fenêtre Scène, notez que la station 3.3 -Téléporter vers Turbine se trouve à droite de la station de déclenchement de la boîte de dialogue d’informations 3.2 .2. Ajustez la vue afin que vous puissiez voir clairement station 3.3.

  2. Dans la hiérarchie, réduisez la boîte de dialogue 3.2 - InfoObject , puis développez 3.3 - Teleport GameObject.

    Capture d’écran

    Le bouton est tout configuré pour vous---nous avons juste besoin d’ajouter les nœuds dans le graphique de script qui lui donnent le comportement de téléportation.

  3. Dans la hiérarchie, développez l’objet GameObject ChapterLabel , puis sélectionnez teleportToWindTurbineButton GameObject.

    Capture d’écran

    Notez que dans l’inspecteur, il existe un composant Machine de script avec un graphique de script nommé Teleport to Open Air Platform. L’option Source est définie sur Incorporer, ce qui signifie que le graphe de script est incorporé dans la scène.

    Capture d’écran

  4. Cliquez sur le bouton Modifier le graphique . Tout comme dans le chapitre précédent, notre graphique a déjà des nœuds configurés pour vous.

    Capture d’écran

Nous allons ajouter des nœuds à ce graphique de script dans un instant.

Create un point de voyage et y ajouter une référence

Alors qu’est-ce qu’un « Travel Point », vous demandez peut-être ... ? Fondamentalement, il s’agit d’un composant que vous pouvez utiliser pour définir un point dans l’espace à générer ou à téléporter. Normalement, vous devez d’abord créer un groupe de voyages, puis y ajouter un ou plusieurs points de voyage. Nous avons déjà créé le groupe de voyages pour vous dans ce projet. Dans les étapes ci-dessous, nous allons donc ajouter un point de voyage à ce groupe. Nous utiliserons ensuite ce point de voyage comme emplacement où l’avatar se rendra lorsqu’il cliquera sur le bouton Téléporter . Pour en savoir plus, consultez notre article nommé Create points de génération et de téléportation d’avatar.

  1. Dans la hiérarchie, créez un nouvel objet GameObject vide en tant qu’objet enfant dans TravelGroup , puis renommez-le « TeleportLocationWindTurbine ».

    Capture d’écran

  2. Dans l’inspecteur, cliquez sur le bouton Ajouter un composant , puis recherchez et ajoutez le composant Point de voyage .

    Capture d’écran

  3. Dans l’inspecteur, dans le composant Transformer , entrez les valeurs suivantes :

    Position :

    X = 6
    Y = 58
    Z = 61

    Rotation :

    X = 0
    Y = 270
    Z = 0

    Capture d’écran

    L’avatar se téléportera à cet emplacement.

  4. Dans l’inspecteur, rendez le GameObject TeleportLocationWindTurbine inactif en désélectionnant la zone case activée en regard de son nom. Si vous avez plusieurs objets TravelPoint actifs au moment de l’exécution, Unity choisit de façon aléatoire l’un des points de voyage actifs comme point de génération de l’avatar. Nous voulons nous assurer que l’avatar se reproduit au point indiqué par l’objet GameObject TeleportLocationChapter3 , de sorte qu’il doit s’agir du seul point de voyage actif. En raison de l’inactivité, TeleportLocationWindTurbine apparaît estompé dans la hiérarchie.

    Capture d’écran

Ajout des nœuds de téléportation

  1. Dans le graphique de script Téléporter vers Open Air Platform , faites glisser un connecteur à partir du port de contrôle de sortie True du nœud If , puis créez un nœud appelé Game Object : Set Active. (Dans le Finder fuzzy, recherchez définir actif.)

    Capture d’écran

  2. Faites glisser l’objet TeleportLocationWindTurbine de la hiérarchie , puis déposez-le dans le champ qui affiche Ceci dans le nœud Game Object : Set Active .

    Capture d’écran

  3. Sélectionnez l’option Valeur du nœud pour le rendre actif.

Ajouter le nœud Point de déplacement

  1. Faites glisser un connecteur à partir du port de sortie de contrôle de l’objet jeu : Définir le nœud actif, puis créez un nœud appelé Travel Point : Travel to Point. (Dans fuzzy Finder, recherchez le point de voyage : voyage.)

  2. Dans le nœud Travel Point : Travel to Point , cliquez sur le bouton rond dans le champ qui affiche This, puis, dans la fenêtre Select TravelPoint , sélectionnez TeleportLocationWindTurbine.

    Capture d’écran

Le graphique est alors terminé.

Capture d’écran

Tester votre travail

  1. Dans le Rédacteur Unity, enregistrez le projet, puis appuyez sur le bouton Unity Rédacteur Lire.

  2. Accédez à Station 3.3, puis cliquez sur le bouton Téléporter pour vous téléporter vers le générateur d’éoliennes.

    Capture d’écran

    Capture d’écran d’une description d’ordinateur générée automatiquement

  3. Dans la zone 3.3 -- Informations sur le générateur, sélectionnez le bouton Afficher/Masquer le générateur . Une fenêtre s’ouvre sur le côté de l’éolienne et vous pouvez voir le générateur à l’intérieur.

    Capture d’écran d’un ordinateur d’une description de machine

N’hésitez pas à vous rapprocher du générateur et à jeter un coup d’œil. C’est assez cool ! Lorsque vous avez terminé, revenez à l’extérieur, puis appuyez sur le bouton Afficher/Masquer le générateur . Cette opération ferme la fenêtre.

Accéder au chapitre 4

À ce stade, le participant à l’expérience serait prêt à passer au chapitre 4 et à en apprendre davantage sur les activités d’éoliennes liées à la physique. Tout comme avec le chapitre 3, il y a une terrasse Sphere qui contient les stations pour le chapitre 4. Pour vous y rendre :

  1. Tournez dans la direction opposée à celle de l’éolienne et marchez vers le 3.3 -- Accédez à la zone d’informations chapitre 4.

    Capture d’écran d’une description d’ordinateur

  2. Appuyez sur le bouton Téléporter vers chapitre 4 .

    Capture d’écran d’une description d’ordinateur

    Comme annoncé, cela place l’avatar devant les stations pour le Chapitre 4 et Mesh Physics.

    Une image contenant du texte, une capture d’écran, un logiciel multimédia, une description du logiciel graphique générée automatiquement

Chapitre 3 : Résumé

Dans ce chapitre, vous avez utilisé Mesh Visual Scripting pour ajouter des fonctionnalités qui permettent aux participants de votre expérience d’effectuer les opérations suivantes :

  1. Appuyez sur un bouton qui déclenche la lecture d’une vidéo éducative sur les éoliennes.

  2. Appuyez sur un bouton qui déclenche l’affichage d’une boîte de dialogue d’informations sur les éoliennes.

  3. Appuyez sur un bouton qui téléporte le participant du sol vers une plateforme attachée à une éolienne, où il peut examiner le générateur de près.

Étapes suivantes