Variables dynamiques

From Resonite Wiki
Revision as of 17:45, 26 January 2024 by J4 (talk | contribs) (Created page with "A la création d'une variable dynamique, vous pouvez choisir depuis une liste de types communs. Si ce que vous voulez n'est pas dans la liste, vous allez devoir entrer le type complexe manuellement.")


This article or section is a Stub. You can help the Resonite Wiki by expanding it.


Aperçu

Les variables dynamiques vous permettent de lire et écrire des information depuis un simple nom. Elles rendent simple la gestion de données dans des systèmes larges; chaque bout de données est étiquetée correctement que vous pouvez décomposer en plusieurs espaces.

Restrictions de noms

En utilisant les variables dynamiques, il y a quelques restrictions sur le nommage sur les variables et espaces.

Les noms de variables et espaces ne peuvent pas contenir:

Utilisation

Optionnellement, un nom de variable peut être préfixé avec le nom d'un espace, se finissant avec /, pour choisir un espace de variables. Cela est utile pour distinguer des systèmes indépendants.

Quelques noms valides incluent:

  • Vie -- pas d'espaces, juste nommé Vie
  • World/Couleur -- nommé Couleur, dans l'espace World
  • MonSysteme/Score -- Nommé Score, dans l'espace MonSysteme

Espaces

Les variables dynamiques peuvent être n'importe ou ou sous un slot contenant le composant DynamicVariableSpace.

Donc, une variable sur l'origine du monde peut être utilisée de partout alors qu'une variable dans un espace sur votre avatar ne peut être utilisée que sur votre avatar.

Variables

La manière la plus simple d'utiliser les variables dynamiques est d'utiliser les composants DynamicValueVariable<T> et DynamicReferenceVariable<T>. Ils fonctionnent pour des valeurs (int, float, String...) et references (Slot, Utilisateur...).

Ces components stockent une valeur ou référence directement. Si deux variable ont le même nom, elles auront des valeurs identiques.

Champs

Si vous voulez utiliser un champ ou référence comme contenu d'une variable dynamique, vous pouvez utiliser les composants DynamicField<T> ou DynamicReference<T>. A la place de stocker quelque chose directement, ils pointent a un champ contenant une certaine valeur ou référence.

(A FAIRE: clarifier les types valeur vs référence)

Pilotes

Vous pouvez utiliser le contenu d'une variable dynamique pour piloter un champ ou référence en utilisant les composants DynamicValueVariableDriver<T> ou DynamicReferenceVariableDriver<T>.

Types non-listés

A la création d'une variable dynamique, vous pouvez choisir depuis une liste de types communs. Si ce que vous voulez n'est pas dans la liste, vous allez devoir entrer le type complexe manuellement.

Attention

Créer, dupliquer ou bouger des variables dynamiques demande de lier cette variable a son espace. Ceci est généralement rapide, pendant ce temps, la variable n'est ni lisible, ni inscriptible. Quand vous créez une variable dynamique en utilisant Create Dynamic Variable ou Write Or Create Dynamic Variable, ou dupliquez le slot avec Duplicate Slot, ou bougez le slot avec Set Parent, vous devez dans certains cas ajouter un délais avec Updates Delay ou Updates Delay With Value pour attendre correctement que les variables sont liées correctement quand vous voulez les lires. Généralement un delais de 1 a 3 ticks est assez.