Ton premier script FL#
Il te faut le SDK dans un projet de monde (le SDK NodeWorld) et une scène avec son objet NW World (mondes). Rien d'autre : le SDK apporte fluxc, le compilateur FL#, et le lance avec le runtime .NET fourni avec l'éditeur Unity.
Créer le dossier des scripts
- Dans la fenêtre Project (la fenêtre de Unity qui liste les fichiers du projet), fais un clic droit sur le dossier de ton monde, puis Create, NodeWorld, FL# Scripts Folder.
- Un dossier
Fluxapparaît, avec une définition d'assembly qui porte le nom du dossier où tu as cliqué : dansAssets/Taverne, c'estTaverne.Flux.asmdef. Unity ne touche pas aux scripts de ce dossier : c'estfluxcqui les compile, avec l'API FL#.
Écrire le script
Dans le dossier Flux, crée un fichier Porte.cs avec ton éditeur de code (écrire du FL# dans ton IDE) :
using NodeWorld.Flux;
namespace Taverne
{
/// <summary>Une porte qui s'ouvre quand un joueur l'utilise, pour tout le monde dans la salle.</summary>
public class Porte : FluxScript
{
public float angleOuvert = 90f; // réglé depuis la scène
private bool _ouverte;
protected override void Start() => Interaction.SetInteractable(gameObject, true);
protected override void OnInteract() => SendNetworkEvent(NetworkEventTarget.All, "Basculer");
protected override void OnNetworkEvent(string name, NetReader arguments, int senderId)
{
if (name != "Basculer") return;
_ouverte = !_ouverte;
transform.localRotation = Quaternion.Euler(0f, _ouverte ? angleOuvert : 0f, 0f);
}
}
}OnInteract tourne sur l'appareil du joueur qui utilise la porte ; SendNetworkEvent avec NetworkEventTarget.All lance OnNetworkEvent sur l'appareil de chaque joueur : la porte tourne pour tout le monde.
La mettre dans le monde
- Sélectionne la NW World Config du monde et glisse
Porte.csdans sa liste Flux Sharp Sources. - Sélectionne la porte dans la scène : Add Component, NodeWorld, FL# Script.
- Clique sur Read the scripts : le SDK compile une fois les scripts du monde et liste leurs classes. Choisis
Taverne.Portedans Script. - Donne à la porte un Network Id (un nom au choix, unique dans le monde) : les événements réseau et les objets synchronisés en ont besoin. Ses champs s'affichent dessous : règle angleOuvert si 90 ne te va pas.
L'essayer
Passe en Play mode : le SDK compile les scripts du monde pour ton ordinateur et les fait tourner comme le jeu. Vise la porte et utilise-la.
Une erreur dans un script arrête la compilation avec le message de fluxc dans la Console : le fichier, la ligne et la colonne, et l'erreur C#, par exemple Porte.cs(18,27): error CS1002: ; expected. Ton éditeur de code souligne les mêmes erreurs pendant que tu tapes.
Le publier
Ouvre NodeWorld, World Publisher et clique sur Build World (publier un monde) : le World Publisher compile les scripts en un module natif par plateforme et les range dans le dossier du monde. Aucun compilateur ni chemin à régler.
