États
Les états vous permettent d'enregistrer différentes apparences d'un objet et de passer de l'une à l'autre. Utilisez-les pour un interrupteur, une porte, une mise en surbrillance ou un produit proposé en plusieurs couleurs.
Un état est une copie enregistrée des réglages de l'objet : sa position, sa couleur, s'il est visible, quelle animation est choisie. Passez à un état, et l'objet reprend cette apparence.
Quand utiliser un état
| Vous voulez | Utilisez |
|---|---|
| Un interrupteur : allumé et éteint | des états |
| Une porte : fermée, ouverte, verrouillée | des états |
| Un produit en trois couleurs | des états |
| Un personnage qui marche le long d'un trajet | une animation |
| Quelque chose qui change d'une valeur calculée | un patch ou un script |
Une règle simple : un nombre fixe de situations nommées, c'est un travail pour les états. Tout ce qui change en continu, c'est un travail pour l'animation.
Créer des états
- Sélectionnez l'objet.
- Dans l'inspecteur, cliquez sur + new component et choisissez States. Le premier état, Default, enregistre l'objet tel qu'il est maintenant.
- Cliquez sur + add state. Le nouvel état est sélectionné.
- Modifiez l'objet : déplacez-le, changez sa couleur, masquez-le. L'état sélectionné enregistre vos modifications au fur et à mesure.
- Répétez les étapes 3 et 4 pour chaque état dont vous avez besoin.
Pour voir un état, cliquez dessus dans la liste.
Modifier l'objet modifie l'état sélectionné, pas l'objet lui-même. C'est ce que vous voulez pendant que vous créez des états. Mais si vous oubliez qu'un état est sélectionné, votre modification peut sembler « ne pas tenir » quand vous changez d'état.
Passer d'un état à l'autre
Dans un événement, utilisez l'étape Set state. Choisissez l'état et, si vous le souhaitez, une durée et un easing.
Avec une durée, le changement se fait en douceur. L'objet glisse de sa position actuelle vers l'apparence enregistrée au lieu de sauter. Vous obtenez une animation sans en créer une.
| Changer d'état depuis | Comment |
|---|---|
| Un événement | l'étape Set state |
| Un patch | le nœud set_states |
| Un script | modifiez activeStateId sur le composant States |
Réagir à un changement d'état
Deux déclencheurs se déclenchent sur l'objet dont l'état a changé :
| Déclencheur | Se déclenche quand |
|---|---|
| State active | l'objet est entré dans l'état choisi |
| State inactive | l'objet a quitté cet état |
Chaque événement surveille un seul état, que vous choisissez dans son champ State. Un même objet peut donc réagir différemment à chaque état. Par exemple, une porte peut afficher un panneau quand elle s'ouvre et un autre quand elle se ferme, sans aucune condition.
Contrairement à un appui, un changement d'état ne remonte pas aux parents de l'objet.
Changer quelques réglages sans état
Parfois, vous voulez « comme maintenant, mais en rouge » sans créer tout un état. Utilisez l'étape Override properties. Elle applique quelques valeurs une seule fois, comme un état temporaire. Elle a les mêmes réglages de durée et d'easing.
Utilisez-la pour une mise en surbrillance rapide au survol ou un flash quand quelque chose est touché. Gardez les vrais états pour les situations que l'objet connaît vraiment.
Ce qu'un état enregistre
Un état enregistre les composants de l'objet. La position, la rotation, l'échelle, le matériau, la visibilité et le reste changent tous ensemble.
Il n'enregistre pas les enfants de l'objet. Pour faire changer un groupe, donnez à chaque objet ses propres états. Ensuite, changez-les tous depuis un seul événement : le champ Target object de l'étape accepte une liste.
Points d'attention
- Un état resté sélectionné dans l'éditeur reçoit vos modifications. Si un objet revient sans cesse à une ancienne apparence, vérifiez quel état est sélectionné.
- Des états et une animation sur le même objet entrent en conflit. Utilisez l'un ou l'autre.
- Supprimer un composant le supprime aussi de tous les états.
- Si l'état sélectionné n'existe plus, c'est le premier état qui est utilisé.
Suivant : Patchs — une logique que vous construisez avec des nœuds.