Partager via


Informations de référence sur les nœuds Mesh Visual Scripting

Accédez à l’article de vue d’ensemble de Visual Scripting

On Interval

Sur le nœud d’événement Interval

Le nœud d’événement On Interval déclenche un flux de script dans des intervalles de temps réguliers synchronisés entre tous les clients de la même salle.

  • Intervalle : intervalle (en secondes) entre les événements.
  • Délai : délai (en secondes) avant le premier événement. Vous pouvez l’utiliser pour interlacer les événements avec le même intervalle déclenché par différents nœuds On Interval .

Sur l’état modifié

Sur le nœud d’événement Changement d’état qui se connecte à un nœud Get Variable

Le nœud d’événement On State Changed se déclenche lorsque l’une de ses entrées modifie sa valeur. Il s’agit d’un mécanisme puissant qui permet à vos scripts de répondre aux modifications d’état provoquées par l’interaction utilisateur ou d’autres scripts visuels, localement et sur d’autres clients dans la même salle.

  • Valeurs : spécifie le nombre de ports d’entrée que vous souhaitez observer. Jusqu’à 10 ports d’entrée peuvent être observés simultanément. Sur les déclencheurs de modification d’état quand l’un d’eux modifie sa valeur.
  • Dans 0, dans 1, et plus encore dans cette séquence : entrées observées pour les modifications d’état. Vous pouvez attacher n’importe quel nœud de données à ces entrées : Obtenir une variable ou n’importe quelle propriété de composant (instance ou statique).
  • Out 0, Out 1, and more in this sequence : Outputs correspondant aux entrées In 0 (et ainsi de suite) qui retournent les valeurs observées.

Lorsque vous observez des variables de script ou des propriétés de composant, On State Changed fonctionne généralement en inscrivant les rappels appropriés en interne, ce qui évite de devoir réévaluer constamment ses entrées. Lorsqu’un rappel approprié n’est pas disponible, comme dans l’exemple suivant, le nœud Activé modifié devient rouge et le panneau Inspecteur de graphique avertit que l’entrée ne peut pas être observée efficacement et est donc désactivée :

Captures d’écran du nœud d’événement On State Changed qui se connectent au résultat de la comparaison d’un nœud Get Variable à un littéral entier, sans interrogation.

Dans ce cas, vous pouvez sélectionner Autoriser l’interrogation dans le panneau Inspecteur de graphique pour forcer On State Changed à détecter les modifications en réévaluant constamment ses entrées. Le nœud conserve une barre jaune le long de son sommet pour vous rappeler qu’il observe une entrée à un coût d’exécution accru.

Captures d’écran du nœud d’événement On State Changed se connectant au résultat de la comparaison d’un nœud Get Variable à un littéral entier, autorisez l’interrogation.

Afficher la boîte de dialogue

Capture d’écran du nœud d’action Afficher la boîte de dialogue

Le nœud Afficher la boîte de dialogue affiche une boîte de dialogue avec un message personnalisé et un ou plusieurs boutons qui permettent à l’utilisateur d’ignorer la boîte de dialogue.

  • Texte : message affiché dans la boîte de dialogue. Le texte du message est encapsulé si nécessaire.
  • Boutons : sélection de boutons à présenter à l’utilisateur. Les boutons suivants peuvent être affichés : OK, Annuler, Oui, Non, Confirmer, Suivant, Réessayer, Continuer, Quitter.
  • Résultat : nom de variable dans lequel stocker la réponse de l’utilisateur lorsqu’il ignore la boîte de dialogue en sélectionnant un bouton. (Si elle est vide, la réponse est ignorée.)
  • Cible : GameObject avec un composant Variables pour stocker la réponse de l’utilisateur.

Si une variable Result est définie, elle est réinitialisée à une chaîne vide dès que le nœud Afficher la boîte de dialogue est entrée et définie de façon asynchrone sur la réponse de l’utilisateur lorsque l’utilisateur sélectionne un bouton pour ignorer la boîte de dialogue. La valeur stockée est l’étiquette non localisée du bouton dans la liste ci-dessus. Utilisez un nœud d’événement On State Changed pour réagir à la réponse de l’utilisateur comme dans l’exemple suivant :

Capture d’écran du nœud Afficher la boîte de dialogue qui collecte la réponse de l’utilisateur dans une variable, suivie d’un nœud On State Changed répondant à la modification de la variable

La variable Result peut être locale ou partagée. S’il est partagé, la réponse de l’utilisateur est envoyée à tous les clients dans la même salle, et le nœud d’événement On State Changed se déclenche sur tous les clients pour réagir à la réponse de l’utilisateur.

Nœuds d’événements physiques

Les nœuds d’événement physique sur l’entrée du déclencheur, sur la sortie du déclencheur, sur entrée de collision et sur sortie de collision sont réseaués de manière fiable. Par défaut, ces événements se déclenchent de manière fiable sur tous les clients de la salle ; toutefois, si le collisionneur physique observé par ces nœuds d’événements est dans l’étendue d’un composant d’étendue physique locale, les événements se déclenchent de manière fiable sur un seul client. Cela permet aux flux de script déclenchés de lire et d’écrire de manière fiable l’état partagé (par exemple, mettre à jour une variable de score partagé).

Sécurité

Mesh protège les utilisateurs contre les scénarios de menace tels que ceux-ci :

  • Contenu de scène compromis , par exemple, des tentatives malveillantes d’accès aux données locales sensibles.
  • Client compromis ou canal de transport ( par exemple, des tentatives malveillantes de lecture ou d’écriture de données distantes inaccessibles sur d’autres clients).

Pour ce faire, Mesh exécute des scripts visuels dans un bac à sable (comme JavaScript dans un navigateur web).

Au démarrage de la scène, Mesh utilise une liste verte organisée pour valider les scripts visuels afin de limiter l’accès à certains types de composants Unity et à un sous-ensemble sécurisé de leurs propriétés.

Au moment de l’exécution de la scène, Mesh limite l’accès à certaines parties de la scène :

  • Localement : en empêchant l’accès aux éléments internes de Mesh et à d’autres données sensibles.
  • À distance : en vérifiant que l’auteur de la scène a l’intention de modifier cette partie de la scène. Pour ce faire, analyse statiquement les scripts visuels côté récepteur pour leurs écritures de scène potentielles.

Exemples :

  • Un script visuel local malveillant veut donner à tous les avatars des têtes bobble. À cette fin, il tente d’analyser l’intégralité de la scène pour GameObjects qui représentent les têtes d’avatar. Mesh filtre automatiquement les résultats de l’analyse pour exclure le système d’avatar.
  • Un client distant malveillant veut faire face à la scène en retournant tous les GameObjects à l’envers. Pour ce faire, il envoie une mise à jour de propriété qui définit l’échelle verticale de chaque GameObject dans la scène. Toutefois, étant donné qu’aucun script visuel sur le client de réception n’est conçu pour faire quoi que ce soit, le client local ignore l’entrée distante.

Voir aussi