Logo Makeyourgame
Accueil Les formations Créer un jeu Les ateliers Les tutoriels Blog
Logo Makeyourgame
Les formations Les financements Les exercices La certification Unity
Logo Makeyourgame
Mes objectifs Les jeux Les ressources Le glossaire
Logo Makeyourgame
Les tutos Les tutos Youtube

Jeux multiplayer avec Unity et Mirror: utiliser des spawn points : Unity

pictureProfil_alto
Ecrit par alto
Catégorie Unity
Mis à jour le 24/10/2020
Jeux multiplayer avec Unity et Mirror: utiliser des spawn points

Découvrez comment placer précisément vos joueurs dans vos mondes multiplayer.

4 min Intermédiaire

Jusqu'à maintenant sur l'utilisation de Mirror , nous avons pris en main la solution mutiplayer, et vu comment gérer les animations, mais les prefabs instantiés de chaque joueur, sont placés aléatoirement en position dans le monde 3D.

Il est temps de voir comment assigner une position précise dans le monde avec un nouveau composant : NetworkStartPosition !

Il est indispensable d'avoir les bases de Unity et C# pour pouvoir suivre ce tutoriel. Vous êtes débutant en création de jeux vidéo avec Unity ? Préférez nos Ateliers sur la prise en main de Unity .
Pensez à télécharger le projet Mirror depuis Github. Un souci pour le faire ? Suivez le guide pour utiliser un projet Unity . Allez encore plus loin avec un Atelier complet dédié à Github .

Préparer la scène

En repartant d'une copie de la scène du second tutoriel dédié à Mirror, nous allons ajouter des GameObjects qui représenteront les points de spawn.

https://makeyourgame.fun/upload/users/alto/tutoriels/Mirror/mirrrorspawnhierarchypoint-5f92d85ef368f.png

Un SpawnPoint est donc composé:

  • D'un parent (Spawn1, Spawn2 ...) qui aura le composant NetworkStartPosition
  • D'un enfant cube (ou sphère), permettant de visualiser par un modèle 3D la position du spawnPoint
  • D'un autre enfant "logo-gps", permettant de visualier par un sprite (2D) cette même position
Il est à noter que pour que cela fonctionne, seul le composant NetworkStartPosition est requis, les deux enfants ne sont pas obligatoires.

https://makeyourgame.fun/upload/users/alto/tutoriels/Mirror/mirrormetworkstartposition-5f92d96fb5db0.png

Ainsi il suffit de donner le composant NetworkStartPosition au Parent.

Et c'est tout !

Composant NetworkStartPosition de Mirror

Le composant NetworkStartPosition , selon la documentation, permet de prendre le contrôle sur les positions de spawn des joueurs.

En effet par défaut tous les prefabs seront instantiés à la position (0,0,0) du monde 3D ... pas terrible, hein  https://makeyourgame.fun/sceditor/emoticons/sad.png ?

Si maintenant on ajoute des GameObjects avec ce composant dans la scène, le NetworkManager ajoutera automatiquement ces spawnPoints dans sa liste et les utilisera... c'est aussi simple que cela !

De plus il existe deux méthodes de distribution lorsqu'un joueur se connecte:

  • Random: distribution aléatoire, le même spawnPoint peut être utilisé plusieurs fois
  • Round Robin: utilise chaque spawnPoint dans l'ordre de sa liste (ordre des GameObjects SpawnPoint dans la hierarchy), jusqu' à ce qu'il y ait plus de joueurs que de SpawnPoints.

Vous pouvez ajuster ce paramètre sur le composant NetWorkManager.

https://makeyourgame.fun/upload/users/alto/tutoriels/Mirror/networkmanagerspawnmethod-5f92dc498aeff.png

Tester la distribution du NetworkManager

Maintenant que les GameObjects SpawnPoints sont dans notre scène, et que le composant NetworkManager est ajusté sur "Round Robin", nous allons pouvoir tester un nouveau build.

Notez que nous utilisons ici aussi, le prefab crée lors des tutoriels précédents "Grunt Varian"...aussi n'hésitez à retourner lire ces tutoriels .

Encore une fois, il faut bien penser à lancer une instance du jeu en host et client, et une autre instance en host uniquement.

https://makeyourgame.fun/upload/users/alto/tutoriels/Mirror/mirrorroundrobinspawn-5f92dd7f68213.png

Ainsi en utilisant la distribution Round Robin, le premier joueur se place bien sur le premier SpawnPoint disponible (Spawn1 dans notre hierachy). Vous pouvez relancer tant que vous voulez .. le host sera toujours instantié sur Spawn1.

Si maintenant vous changez la distribution pour Random, il est alors possible que les joueurs soient placés en Spawn2, alors que personne n'a été placé au Spawn1.

https://makeyourgame.fun/upload/users/alto/tutoriels/Mirror/mirrorrandomspawn-5f92de274014c.png

Ainsi vous savez maintenant comment assigner des positions précises dans votre monde 3D, lorsque les joueurs se connectent à votre jeu.

Retrouvez le projet sur Github .

Vues: 2043

Licence:



Validation du Tutoriel

Veuillez vous connecter ou créer un compte pour pouvoir valider ce tutoriel et ainsi gagner de l'expérience (XP) !

Vous aimerez aussi...

Blog et Tutoriels