Introduction
ProtoFlux est un language de scripting graphique qui peut être manipulé dans l'espace 3D avec l'outil ProtoFlux.
ProtoFlux est la cerise sur le gateau de nous outils créatifs - le language de programmation visuel le plus puissant que notre équipe expérimenté a crée et vous permettant de prototyper et construire tout ce que vous voulez, de simples interactions a des jeux complexes - avec une collaboration et exécution en temps réel.
Vous pouvez tout créer, d'avatars ou monde a des systèmes complexes.
Utilisation
ProtoFlux est représenté dans le monde avec des nodes qui peuvent être matérialisées avec le navigateur de nodes ProtoFlux qui est lui-même matérialisable depuis l'outil ProtoFlux.
Vous pouvez matérialiser un outil ProtoFlux en allant dans le dossier Resonite Essentials de votre Inventaire pour commencer a programmer (l'outil lui-même est dans le dossier "Tools").
Pour voir une liste de nodes, allez sur liste de nodes en mode navigateur pour une vue comme dans le jeu ou liste de nodes par ordre alphabétique pour une liste complète. Toutes les pages de node ont des liens vers les deux listes.
Pour commencer a utiliser ProtoFlux, vous devez en premier matérialiser l'outil ProtoFlux depuis le dossier mentionné ci-dessus. Une fois équipé, le navigateur de nodes ProtoFlux peut être trouvé dans le menu contextuel. Pour sélectionner une node, double cliques sur celle-ci avec l'outil. Cela va faire apparaître le nom de la node au-dessus de l'outil. Double-cliquez pour matérialiser la node.
Vous pouvez aussi sélectionner des nodes qui existent déjà avec votre bouton secondaire en pointant la node.
Les nodes peuvent être connectées en pointant le laser au point de connexion de la node et en tenant le bouton primaire (trigger pour la plupart des manettes) et en faisant un glisser-déposer sur le point de connexion d'une autre node. Cette connexion peut être coupée en tenant le bouton primaire, ce qui va faire apparaître une ligne rouge que vous devez collisionner avec la connexion que vous voulez retirer.
Interfacer avec des composants / slots
Pour changer ou lire les propriétés d'un slot ou composant, saisissez le composant avec votre manette (ou clic droit en Desktop) en pointant a un champ avec l'outil ProtoFlux (par exemple, pointez et saisissez le champ "Position" sur un slot). Tout en gardant le champ saisi, ouvrez votre menu contextuel ce qui vous donnera plus d'options.
Sourcer: Cela va matérialiser une node qui référence la source de cette propriété. Cela est utile pour lire une valeur mais aussi l'écrire avec ProtoFlux.
Conduire: Cela va matérialiser une node vous permettant de continuellement écrire une valeur dans la variable.
Référencer: Cela va matérialiser une node vous permettant d'avoir une référence vers le champ. Cela est utile pour les nodes comme ProtoFlux:Tween Value qui demandent la référence d'une valeur changeante.
Emballer / Déballer ProtoFlux
To pack Protoflux, hold Secondary while pointing at a group of Protoflux using the ProtoFlux Tool Tip. The Protoflux should become light blue, this indicates it has been selected (This also makes the Protoflux that is selected act as one object, allowing you to easily move groups of Protoflux around).
Once the Protoflux has been selected, make an empty Slot using the Inspector. This will be the slot the Protoflux is packed into. To then pack the Protoflux, grab the slot using the left side of the Inspector so that it's name is above the ProtoFlux Tool Tip. While you are grabbing it, open your Context menu and select Pack Into. Once packed, the Protoflux will still function like normal, but will no longer show it's visuals and will apply some optimizations.
To then unpack it, grab the same slot you packed it into and open your context menu, while a ProtoFlux Tool Tip is equipped. There should now be an option to unpack the Protoflux.
Variables
Dans ProtoFlux, il y a trois types de variables génériques:
The simplest type of variable is a Data Model Store. It's automatically synced to all users upon being written to. Most simple scripts can be done entirely with these, but it can impact performance if overused.
The natural progression down the list is a Store. It's similar to standard variables in most languages. It does not get synced over the network, which alleviates the overhead of doing so, but could lead to desync.
Lastly, we have locals. They're instanced for different execution chains, so if your ProtoFlux is called twice at once, you can read from and write to the variable from both contexts, they will each use a unique instance of the variable that gets discarded when that execution ends.
Impulses
See Impulses