Aller au contenu principal

Où placer un script

Vous pouvez attacher un script à un objet, à une scène, à un espace ou à tout le projet. Le niveau choisi décide combien de temps le script tourne, et cela compte souvent plus que le code.

Attaché àTourne tant queS'arrête quand
Un objetl'objet est à l'écranil est masqué, désactivé ou supprimé
Une scènela scène est activele visiteur quitte la scène
Un espacele visiteur est dans l'espaceil passe dans un autre espace
Le projettoujours, dans tous les espacesle visiteur s'en va

Sur un objet​

C'est le cas par défaut. Utilisez-le pour un comportement propre à une seule chose : une porte qui s'ouvre, un ennemi qui poursuit, un bouton qui réagit.

ctx.entity est cet objet. Le script s'arrête en même temps que l'objet : vous n'avez donc jamais à faire le ménage derrière un objet qui n'existe plus.

Sur une scène​

Ajoutez-le dans la section Scripts de la scène. Utilisez-le pour la logique qui concerne toute la scène : jouer une introduction dans l'ordre, compter les objets à ramasser qui restent, décider quand le visiteur peut passer à la suite.

Il démarre quand la scène devient active et s'arrête quand elle ne l'est plus. Dans un projet AR, cela signifie qu'il démarre quand la scène est détectée.

Sur un espace​

Ajoutez-le dans la section Scripts de l'espace. Un script d'espace continue de tourner quand la scène change. Utilisez-le pour un score sur trois scènes, un minuteur pour toute la visite, ou une logique qui choisit la scène suivante.

Un toucher ou un autre événement sur un objet atteint aussi le script d'espace : il remonte de l'objet à la scène, puis à l'espace.

Sur le projet​

Ajoutez-le dans les réglages du projet. Le script est ajouté à chaque espace : il est donc présent partout où va le visiteur.

Utilisez-le pour ce qui doit durer d'un espace à l'autre : les choix du visiteur, sa progression globale, les statistiques.

Ce qui garde sa valeur​

Stocké dansAprès un changement de scèneAprès un changement d'espaceAprès un rechargement
une variable dans initseulement si le script tourne encoreseulement si le script tourne encorenon
ctx.storeouinonnon
une variable globaleouiouinon
une variable globale @space:ouinon — chaque espace garde la sienne, c'est voulunon
Fermer l'onglet efface tout

Rien n'est conservé : ni store, ni les variables globales. Si vous avez besoin d'une valeur la prochaine fois, envoyez-la vers un endroit à vous pendant que le visiteur est encore sur la page.

Choisir un niveau​

Posez-vous la question : quelle est la plus petite chose que concerne cette logique ?

  • Un seul objet — mettez le script sur l'objet.
  • Cette scène — mettez-le sur la scène.
  • Toute la visite — mettez-le sur l'espace. S'il y a plusieurs espaces, mettez-le sur le projet.

Ne mettez pas tout sur le projet « au cas où ». Un script de projet ne peut compter sur le chargement d'aucune scène en particulier. Il se remplit de vérifications dont un script d'objet n'a jamais besoin.

Les patches fonctionnent de la même façon​

Vous pouvez aussi attacher un patch à chacun de ces niveaux, et il tourne pendant la même durée. Un patch sur le projet est la façon habituelle de construire une logique pour tout le projet sans écrire de code.


Suivant : L'API ctx — tout ce qu'un script peut faire avec ctx.