NodeWorld

Les portails de ton monde

Un portail de ton monde est fait par un script FL# qui tourne sur le serveur : NodeWorld n'a pas de composant de portail à poser dans la scène. Tous les joueurs de la salle le voient, et le passent pour aller au monde où il mène. Les joueurs déposent aussi leurs propres portails depuis le menu (Déposer le portail, explorer) ; cette page parle des portails de ton monde.

Un portail toujours là

Un script sur le serveur l'ouvre au démarrage du monde, là où se tient son objet :

csharp
using NodeWorld.Flux;

namespace MonMonde
{
    public class PortailMaison : FluxScript
    {
        public string serveurCible = "";       // l'ID du serveur du monde visé
        public string mondeCible = "HomeWorld";
        public string etiquette = "";          // vide : le nom du monde visé

        protected override void Start()
        {
            if (!World.isServer) return;
            Portals.Spawn("maison", new PortalOptions
            {
                targetServer = serveurCible,
                targetWorld = mondeCible,
                label = etiquette,
                position = transform.position,
                rotation = transform.rotation,
            });
        }
    }
}

Mets-le sur un objet vide là où se tient le portail, avec un composant FL# Script : le portail prend la position et la rotation de l'objet. Il reste jusqu'à la fermeture de la salle ou jusqu'à ce qu'un script le ferme (Portals.Despawn).

Un portail qu'un joueur ouvre

Le Portal kiosk du monde d'exemple (PortalKiosk.cs) est un bouton : le jeu du joueur envoie un événement réseau au serveur, dont le script ouvre un portail devant la borne pendant 30 secondes. Copie-le dans ton monde, donne à son objet un Network Id, et règle targetServer et targetWorld (portails faits par les scripts).

Où il mène

PortalOptions
targetServerL'ID du serveur (un UUID), tel que la liste des serveurs le donne : id dans GET /servers de l'API publique.
targetWorldLe World ID du monde sur ce serveur.
instanceCodeUne instance de ce monde ; vide : NodeWorld en choisit une.
labelLe nom affiché sur le portail ; vide : le nom du monde visé.
position, rotationOù il se tient.

Portals.Spawn renvoie false quand le serveur refuse le portail (une cible vide, un ID déjà utilisé dans la salle). Les portails ne s'ouvrent que sur un serveur : en Play mode, Spawn renvoie false (limites).