CRÉEZ VOTRE MONDE
Multiplay
14min
zepeto multiplay est un module qui permet à plusieurs utilisateurs de se connecter et de jouer au monde en même temps il fournit le développement serveur/client et l'environnement de test local 📘 exemple de monde multiplay officiel github https //github com/naverz/zepeto multiplay example https //github com/naverz/zepeto multiplay example tutoriel tutoriel multijoueur docid\ vf1p1ejmzrhgtbakllyb9 étape 1 installer sélectionnez zepeto → serveur multiplay dans le menu \[+] en haut à gauche du panneau \[projet], ou allez à assets → créer → zepeto → serveur multiplay le package world multiplay se compose des éléments suivants, et est automatiquement mis à jour lorsque le monde est publié index ts code principal du serveur schemas structure de données pour la communication serveur/client ❗️ avertissement un seul package world multiplay peut être créé par jeu étape 2 paramètres cliquez sur \[ouvrir les paramètres du monde] comme indiqué dans l'image ci dessous pour définir les paramètres du monde propriété description version entrez la version de votre fichier à enregistrer maxclients définissez le nombre maximum de personnes pouvant accéder à la salle orientation choisissez l'orientation de l'écran désactiver l'invitation désactive la fonction d'invitation à la salle désactiver la liste des salles désactive la possibilité de vérifier la liste des salles désactiver la salle privée désactive la possibilité de créer une salle privée 👍 désactiver l'invitation même si la fonction d'invitation à la salle est désactivée, vous pouvez envoyer des invitations via le lien de test étape 3 exécution d'un serveur de test zepeto multiplay fournit un environnement de serveur local où le créateur peut tester des serveurs/clients pendant le développement pour vérifier les actions du serveur local, sélectionnez le menu supérieur unity → fenêtre → zepeto → serveur multijoueur pour ouvrir la fenêtre d'état du serveur cliquez sur le bouton serveur à côté du bouton \[▶︎(jouer)] au centre de l'écran de l'éditeur vous verrez le journal du serveur suivant dans le panneau état du serveur étape 4 connexion à un client (connexion à un serveur local) le composant zepetoworldmultiplay est une classe de gestionnaire multiplay utilisée du côté client créez un gameobject dans la fenêtre hiérarchie, et ajoutez un composant zepetoworldmultiplay le composant zepetoworldmultiplay se connectera automatiquement au package multiplay cliquez sur le bouton \[▶︎(lecture)] au centre de l'écran de l'éditeur pour voir le journal de connexion du client dans la fenêtre du journal du serveur le serveur de développement fonctionne sur localhost(127 0 0 1), et le port est défini lorsque le projet est chargé pour la première fois lors de la connexion via multi projet, définissez l'environnement de connexion comme suit 📘 veuillez vous référer au guide suivant accéder aux adresses ip multiplay docid\ lx rqsw1ledgo4bhx5aat 👍 après que le monde soit distribué, il fonctionnera sur le serveur zepeto étape 5 exemple par défaut de communication serveur / client mise en œuvre de la logique du serveur le fichier index ts dans le package world multiplay est le code responsable de la logique principale du serveur ouvrez le fichier index ts et ajoutez la logique qui est envoyée au client après avoir reçu le type de message, echo, dans l'événement oncreate() 📘 veuillez vous référer au guide suivant \[zepeto multiplay(server) api] import { sandbox, sandboxoptions, sandboxplayer } from 'zepeto multiplay'; import { player } from 'zepeto multiplay schema'; export default class extends sandbox { oncreate(options sandboxoptions) { this onmessage("echo", (client, message) => { console log(`echo onmessage from ${client sessionid}, > ${message}`); // envoyer au client actuel client send("echo", "echo à l'expéditeur " + message); // diffuser à tous les clients connectés this broadcast("echo", "echo à tous " + message); }); } onjoin(client sandboxplayer) { const player = new player(); player sessionid = client sessionid; player userid = client userid; const players = this state players; players set(client sessionid, player); console log('onjoin!!!!'); } onleave(client sandboxplayer, consented? boolean) { } } mise en œuvre de la logique client créez et ajoutez le script zepeto dans l'objet zepetoworldmultiplay utilisé pour envoyer/recevoir des événements serveur comme suit multiplaysample ts import { zepetoscriptbehaviour } from 'zepeto script'; import { zepetoworldmultiplay } from 'zepeto world'; import { room } from 'zepeto multiplay'; export default class multiplaysample extends zepetoscriptbehaviour { private multiplay zepetoworldmultiplay; start() { this multiplay = this gameobject getcomponent\<zepetoworldmultiplay>(); this multiplay roomjoined += (room room) => { console log(`roomcreated, my session id is ${room sessionid}`); // envoyer un message au serveur room send("echo", "bonjour zepeto multiplay"); // ajouter un écouteur de message serveur room addmessagehandler("echo", (message) => { // imprimer le message du serveur console log(message); }); }; } } 📘 veuillez vous référer au guide suivant \[err] message de la salle multijoueur docid\ y9pmfhg0trjpdms7ioua0 étape 6 tester les résultats de sortie cliquez sur le \[▶︎(jouer)] au centre de l'écran de l'éditeur pour exécuter le serveur/client vous devriez voir un exemple d'un message de type 'echo' comme indiqué ci dessous ① journal de la sortie lorsque les messages du client sont reçus sur le serveur ② journal du message reçu du serveur par le client précautions lors de l'utilisation du code serveur ❗️ attention \[utilisation de variables dans le code serveur] les variables peuvent également être déclarées dans le code serveur cependant, la mémoire cache disponible sur le serveur est actuellement limitée à 512 ko (cela peut changer plus tard ) si cela dépasse 512 ko, la salle peut être cachée, donc veuillez le développer en gardant cela à l'esprit \[utilisation de boucles dans le code serveur] la limite de temps de boucle est fixée à 2 secondes (2000 ms) dans le code serveur veuillez en tenir compte lors du développement, car l'utilisation de code bloquant ou de boucles de longue durée peut entraîner un échec de l'exécution correcte du programme en raison de la limite de temps de boucle