Partager via


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

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

Sur l’intervalle

Nœud d’événement Sur l’intervalle

Le nœud d’événement On Interval déclenche un flux de script à 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 entrelacer des événements avec le même intervalle déclenché par différents nœuds On Interval .

Sur l’état modifié

Lors de la modification de l’état, nœud d’événement se connectant à un nœud Get Variable

Le nœud d’événement On State Changed se déclenche quand 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 changements d’état causés par l’interaction utilisateur ou d’autres scripts visuels, à la fois 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 Le changement d’état se déclenche lorsque l’un d’eux change sa valeur.
  • Dans 0, Dans 1 et plus dans cette séquence : entrées observées pour les changements 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 et plus dans cette séquence : sorties correspondant aux entrées In 0 (et ainsi de suite) qui retournent les valeurs observées.

Lors de l’observation 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 d’avoir à réévaluer constamment ses entrées. Lorsqu’un rappel approprié n’est pas disponible, comme dans l’exemple suivant, le nœud On State Changed devient rouge et le panneau Graph Inspector 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 se connectant 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 graphe pour forcer l’état modifié pour détecter les modifications en réévaluant constamment ses entrées. Le nœud conserve une barre jaune en haut pour vous rappeler qu’il observe une entrée à un coût d’exécution plus élevé.

Les 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, autorisent l’interrogation.

Boîte de dialogue Afficher

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 des 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 la variable dans laquelle 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 sur la réponse de l’utilisateur de manière asynchrone 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 collectant la réponse de l’utilisateur dans une variable, suivie d’un nœud On State Change qui répond à 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 de la même salle, et le nœud d’événement On State Changed 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énements physiques Sur l’entrée du déclencheur, sur la sortie du déclencheur, sur l’entrée de collision et sur la sortie de collision sont mis en réseau 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énement est dans l’étendue d’un composant Local Physics Scope , les événements se déclenchent de manière fiable sur un client exactement. 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 à des données locales sensibles.
  • Un client ou un canal de transport compromis, 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 d’autorisation 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.

Lors 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 données 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 de bobble. À cette fin, il tente d’analyser l’ensemble de la scène à la recherche de GameObjects qui représentent des têtes d’avatar. Mesh filtre automatiquement les résultats de l’analyse pour exclure le système d’avatar.
  • Un client distant malveillant souhaite dégrader 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 comme ça, le client local ignore l’entrée distante.