> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Démarrage rapide du plugiciel Party pour Unity

> Démarrage rapide pour ajouter le plugiciel PlayFab Party à un projet Unity : installer le package, authentifier les joueurs et activer le clavardage vocal entre les points de terminaison.

# Démarrage rapide : plugiciel PlayFab Party pour Unity

Ce démarrage rapide vous aide à installer le SDK Party pour Unity et à effectuer vos premiers appels d'API pour réunir des joueurs dans un réseau Party. Avant de continuer, assurez-vous d'avoir effectué l'étape [Activer la fonctionnalité Party au moyen de Game Manager](https://docs.xbox.com/fr-CA/services/playfab/multiplayer/networking/enable-party.md) depuis votre compte PlayFab.

> [!NOTE]
>
> Si vous prévoyez d'utiliser ce plugiciel pour développer des jeux basés sur le Microsoft Game Development Kit (GDK), vous devez vous procurer et installer le GDK séparément. Consultez également les détails relatifs au module complémentaire Unity pour Game Core sur les consoles XBOX.

## Configuration requise

* Un [compte développeur PlayFab](https://developer.playfab.com).

* Une copie installée de l'éditeur Unity. Pour installer Unity pour un usage personnel au moyen d'Unity Hub, ou Unity+ pour un usage professionnel, consultez [Télécharger Unity](https://unity3d.com/get-unity/download). Vérifiez si nécessaire la prise en charge de Unity dans la documentation de votre plateforme spécifique. La version minimale de Unity prise en charge est Unity 2017 LTS.

* Un projet Unity, qui peut être l'une des options suivantes :

  * Un tout nouveau projet : pour plus d'informations, consultez [Démarrer Unity pour la première fois](https://docs.xbox.com/fr-CA/services/playfab/sdks/unity3d/quickstart.md).
  * Un projet de tutoriel guidé. Pour plus d'informations, consultez [Prise en main de Unity](https://learn.unity.com/).
  * Un projet existant.

* Le SDK Unity3D PlayFab « principal ». Pour plus d'informations sur l'installation du SDK Unity3D, consultez la section « Télécharger et installer le SDK PlayFab » de [Démarrage rapide : bibliothèque cliente PlayFab pour C# dans Unity](https://docs.xbox.com/fr-CA/services/playfab/sdks/unity3d/quickstart.md#download-and-install-playfab-sdk).

## Télécharger et installer le plugiciel PlayFab Party pour Unity

Suivez ces étapes pour télécharger et installer le plugiciel PlayFab Party pour Unity.

1. Téléchargez le package d'actifs du [plugiciel Party pour Unity](https://github.com/playfab/PlayFabPartyUnity) de PlayFab (utilisez un point de distribution adapté à votre plateforme).
2. **Important!** Consultez les informations du [fichier README](https://github.com/PlayFab/PlayFabPartyUnity/blob/master/README.md) publié avec le plugiciel. Il est adapté à chaque version particulière et peut inclure des instructions importantes propres à votre plateforme.
3. Ouvrez votre projet Unity.
4. Accédez à l'emplacement où vous avez enregistré le fichier .unitypackage et double-cliquez dessus pour ouvrir la boîte de dialogue d'importation.
5. Pour importer le plugiciel PlayFab Party pour Unity dans votre projet, sélectionnez **Import**.

## Configurer votre scène

Cette partie du guide vous montre comment ajouter le `PlayFabMultiplayerManager` à votre scène pour pouvoir appeler les API PlayFab Party depuis Unity.

Avant de pouvoir créer un réseau, **un joueur PlayFab doit être connecté**. Pour plus d'informations sur la connexion d'un joueur, consultez [Effectuer votre premier appel d'API dans Démarrage rapide : bibliothèque cliente PlayFab pour C# dans Unity](https://docs.xbox.com/fr-CA/services/playfab/sdks/unity3d/quickstart.md#making-your-first-api-call).

1. Dans l'éditeur Unity, dans la fenêtre Project, accédez à **Assets > PlayFabPartySDK > Prefabs**.

2. Depuis le dossier Prefabs, faites glisser le **PlayFabMultiplayerManager** dans votre scène, dans la fenêtre **Hierarchy**.

3. Créez dans votre scène un Game Object vide appelé « HelloPartyLogic ».

4. Sélectionnez le Game Object HelloPartyLogic pour ouvrir l'**Inspector**.

5. Sélectionnez **Add Component**.

6. Tapez « HelloPartyLogic » et appuyez sur Entrée pour afficher le menu de nouveau script.

7. Appuyez de nouveau sur Entrée pour créer le nouveau script, HelloPartyLogic.cs.

8. Recherchez le script dans la fenêtre **Project** et double-cliquez dessus pour le modifier.

9. Ajoutez l'instruction using suivante à votre script :

   ```csharp theme={null}
   using PlayFab;
   using PlayFab.Party;
   using PlayFab.ClientModels;
   ```

10. Ajoutez le code suivant dans la méthode Start pour vous connecter à PlayFab.

    ```csharp theme={null}
    // Log into playfab
    var request = new LoginWithCustomIDRequest { CustomId = UnityEngine.Random.value.ToString(), CreateAccount = true };
    PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
    ```

11. Ajoutez les méthodes suivantes à la classe.

    ```csharp theme={null}
    private void OnLoginSuccess(LoginResult result)
    {
    }

    private void OnLoginFailure(PlayFabError error)
    {
    }
    ```

> [!NOTE]
>
> Vous pouvez recevoir les erreurs suivantes : `Error CS0227 Unsafe code may only appear if compiling with /unsafe The plugin requires unsafe code because it interops with a native DLL. Mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "XGamingRuntime", "AMD64".`

Le Microsoft GDK et Windows ne prennent en charge que x64.

Pour résoudre ces problèmes :

1. Dans l'éditeur Unity, sélectionnez **File > Build Settings.**
2. Sélectionnez votre plateforme. Ensuite, dans la liste déroulante **Architecture**, sélectionnez x86\_64 ou x64.
3. Sélectionnez **Player Settings.**
4. Dans le volet de droite, sélectionnez Other Setting.
5. Recherchez le paramètre **Allow unsafe Code** et sélectionnez-le.
6. Fermez les fenêtres **Build Settings** et **Project Settings**.

## Connexion à un réseau

Cette partie du guide vous montre comment créer et rejoindre un réseau.

1. Ouvrez le script HelloPartyLogic.cs. Dans la méthode `OnLoginSuccess`, ajoutez le code suivant pour créer et rejoindre un réseau :

   ```csharp theme={null}
   PlayFabMultiplayerManager.Get().CreateAndJoinNetwork();
   PlayFabMultiplayerManager.Get().OnNetworkJoined += OnNetworkJoined;
   ```

2. Pour définir le gestionnaire d'événements OnNetworkJoined, ajoutez le code suivant à la classe :

   ```csharp theme={null}
   private void OnNetworkJoined(object sender, string networkId)
   {
       // Print the Network ID so you can give it to the other client.
       Debug.Log(networkId);
   }
   ```

3. Enregistrez et sélectionnez Play dans l'éditeur Unity. L'ID du réseau s'affiche dans la fenêtre Console.

## Rejoindre un réseau existant

Cette partie du guide vous montre comment rejoindre un réseau existant créé par un autre client.

1. Ouvrez le script HelloPartyLogic.cs. Dans la méthode OnLoginSuccess, ajoutez le code suivant pour rejoindre un réseau :

   ```csharp theme={null}
   string networkId = "<your network id>";
   PlayFabMultiplayerManager.Get().JoinNetwork(networkId);
   ```

2. Pour définir un événement qui se déclenche lorsque votre client local rejoint le réseau, ajoutez le code suivant à la méthode `OnLoginSuccess` :

   ```csharp theme={null}
   PlayFabMultiplayerManager.Get().OnNetworkJoined += OnNetworkJoined;
   ```

3. Pour définir le gestionnaire d'événements OnNetworkJoined, ajoutez le code suivant à la classe :

   ```csharp theme={null}
       private void OnNetworkJoined(object sender, string networkId)
       {
           // Print the Network ID so you can give it to the other client.
           Debug.Log("Network joined!");
       }
   ```

   Il existe de nombreuses façons de transmettre l'ID du réseau de l'hôte aux autres joueurs qui souhaitent le rejoindre. Consultez l'exemple fourni dans ce plugiciel Unity pour voir comment procéder.

4. Enregistrez et sélectionnez Play dans l'éditeur Unity. La chaîne « Network joined! » s'affiche dans la fenêtre Console.

## Accéder aux autres joueurs

Cette partie du guide vous montre comment accéder aux autres joueurs du réseau, y compris au joueur local.

Pour être informé de l'arrivée et du départ de joueurs dans le réseau, abonnez-vous aux événements OnRemotePlayerJoined et OnRemotePlayerLeft.

1. Ouvrez le script HelloPartyLogic.cs. Dans la méthode OnLoginSuccess, ajoutez le code suivant pour créer et rejoindre un réseau :

   ```csharp theme={null}
   PlayFabMultiplayerManager.Get().OnRemotePlayerJoined += OnRemotePlayerJoined;
   PlayFabMultiplayerManager.Get().OnRemotePlayerLeft += OnRemotePlayerLeft;
   ```

2. Ajoutez les méthodes suivantes à la classe :

   ```csharp theme={null}
   private void OnRemotePlayerLeft(object sender, PlayFabPlayer player)
   {
   }

   private void OnRemotePlayerJoined(object sender, PlayFabPlayer player)
   {
   }
   ```

3. Pour accéder au joueur local, ajoutez le code suivant à la méthode OnRemotePlayerJoined :

   ```csharp theme={null}
   var localPlayer = PlayFabMultiplayerManager.Get().LocalPlayer;
   ```

La classe PlayFabPlayer contient des propriétés permettant d'identifier le joueur, de le mettre en sourdine et d'afficher son état de clavardage dans une interface de clavardage.

## Envoi et réception de messages de données

Cette partie du guide vous montre comment envoyer et recevoir des messages de données. Avant de pouvoir commencer à envoyer et à recevoir des messages de données, vous devez rejoindre un réseau.

1. Ouvrez le script HelloPartyLogic.cs. Dans la méthode OnLoginSuccess, ajoutez le code suivant pour écouter les messages de données :

   ```csharp theme={null}
   PlayFabMultiplayerManager.Get().OnDataMessageReceived += LocalPlayer_OnDataMessageReceived;
   ```

2. Ajoutez le gestionnaire d'événements `OnDataMessageRecieved` à la classe :

   ```csharp theme={null}
   private void OnDataMessageReceived(object sender, PlayFabPlayer from, byte[] buffer)
   {
       Debug.Log(Encoding.Default.GetString(buffer));
   }
   ```

3. Pour envoyer un message de données, ajoutez le code suivant à la méthode Update :

   ```csharp theme={null}
   if (Input.GetButtonDown("Fire1"))
   {
       byte[] requestAsBytes = Encoding.UTF8.GetBytes("Hello (data message)");
       PlayFabMultiplayerManager.Get().SendDataMessageToAllPlayers(requestAsBytes);
   }
   ```

Enregistrez HelloPartyLogic.cs et sélectionnez Play dans l'éditeur Unity.

1. Dans un second client, répétez les étapes de [Connexion à un réseau](#connecting-to-a-network) pour créer et rejoindre un réseau.
2. Copiez l'ID de réseau retourné dans votre premier client et connectez-vous au réseau.
3. Cliquez sur la scène pour envoyer un message. « Hello (data message) » s'affiche dans la fenêtre Console.

## Envoi et réception de messages de clavardage

Cette partie du guide vous montre comment envoyer et recevoir des messages de clavardage et mettre en sourdine des joueurs distants. En plus du clavardage textuel, Party active automatiquement le clavardage vocal entre les joueurs.

Avant de pouvoir commencer à envoyer et à recevoir des messages de clavardage, vous devez rejoindre un réseau.

1. Ouvrez le script HelloPartyLogic.cs. Dans la méthode OnLoginSuccess, ajoutez le code suivant pour écouter les messages de clavardage :

   ```csharp theme={null}
   PlayFabMultiplayerManager.Get().OnChatMessageReceived += OnChatMessageReceived;
   ```

2. Ajoutez le gestionnaire d'événements `OnChatMessageReceived` à la classe;

   ```csharp theme={null}
   private void OnChatMessageReceived(object sender, PlayFabPlayer from, string message, ChatMessageType type)
   {
       Debug.Log(message);
   }
   ```

Enregistrez HelloPartyLogic.cs et appuyez sur Play dans l'éditeur Unity.

1. Dans un second client, répétez les étapes de [Connexion à un réseau](#connecting-to-a-network) pour créer et rejoindre un réseau.
2. Copiez l'ID de réseau retourné dans votre premier client et connectez-vous au réseau.
3. Lorsque vous cliquez sur votre scène, un message est envoyé et s'affiche dans la fenêtre Console.
4. Si vous souhaitez donner à vos joueurs la possibilité de mettre d'autres joueurs en sourdine, définissez la propriété IsMuted sur true.

   ```csharp theme={null}
   private void OnRemotePlayerJoined(object sender, PlayFabPlayer player)
   {
       // This player will not be able to send text or voice communication.
       // Data messages can still be sent.+
       player.IsMuted = true;
   }
   ```

## Connexion à un réseau avec des options de configuration de connectivité entre pairs personnalisées

Cette partie du guide vous montre comment créer et rejoindre un réseau avec des options de configuration de connectivité entre pairs personnalisées. L'option
par défaut est P2P; toutefois, l'utilisateur peut modifier cette option à l'aide de n'importe quelle combinaison des indicateurs présentés ici : [DirectPeerConnectivityOptions](https://docs.xbox.com/fr-CA/services/playfab/multiplayer/networking/unity-party-api-reference/enums/partyunitydirectpeerconnectivityoptions.md). Cet exemple montre comment définir P2P :

1. Ouvrez le script HelloPartyLogic.cs. Dans la méthode `OnLoginSuccess`, ajoutez le code suivant pour créer et rejoindre un réseau :

   ```csharp theme={null}
   PlayfabNetworkConfiguration networkConfiguration = new PlayfabNetworkConfiguration();
   networkConfiguration.DirectPeerConnectivityOptions = PARTY_DIRECT_PEER_CONNECTIVITY_OPTIONS_ANY_PLATFORM_TYPE |
                                                        PARTY_DIRECT_PEER_CONNECTIVITY_OPTIONS_ANY_ENTITY_LOGIN_PROVIDER;
   PlayFabMultiplayerManager.Get().CreateAndJoinNetwork(networkConfiguration);
   PlayFabMultiplayerManager.Get().OnNetworkJoined += OnNetworkJoined;
   ```

## Gestion de la suspension du titre

Certaines plateformes prennent en charge la suspension temporaire de l'exécution de votre titre : iOS, Switch et GDK.
Lorsque votre titre est suspendu, la pile réseau est invalidée et PlayFab Party ne peut pas maintenir la connexion au réseau PlayFab Party.
Une attention particulière est nécessaire pour gérer la suspension et la reprise de l'exécution de votre titre lors de l'utilisation de PlayFab Party.

### iOS

Sur iOS, vous devez quitter le réseau PlayFab Party puis vous y reconnecter, ce qui peut être réalisé en appelant [ResetParty()](https://docs.xbox.com/fr-CA/services/playfab/multiplayer/networking/unity-party-api-reference/classes/playfabmultiplayermanager/methods/playfabunityresetparty.md)

### Switch et GDK

Sur Nintendo Switch et Microsoft GDK, vous devez nettoyer PlayFab Party et toutes les ressources associées à PlayFabMultiplayerManager, puis attendre la reprise de l'exécution du titre avant de réinitialiser PlayFab Party et de vous reconnecter à votre réseau.

Pour nettoyer PlayFab Party pendant la suspension d'un titre, appelez [Suspend()](https://docs.xbox.com/fr-CA/services/playfab/multiplayer/networking/unity-party-api-reference/classes/playfabmultiplayermanager/methods/playfabunitysuspend.md). Une fois que le titre a repris son exécution, appelez [Resume()](https://docs.xbox.com/fr-CA/services/playfab/multiplayer/networking/unity-party-api-reference/classes/playfabmultiplayermanager/methods/playfabunityresume.md) pour réinitialiser PlayFab Party.

Une fois PlayFab Party et toutes les ressources associées à PlayFabMultiplayerManager correctement initialisés, répétez les étapes de [Rejoindre un réseau existant](#joining-an-existing-network).


## Related topics

- [Démarrage rapide du plugiciel Multiplayer pour Unity](https://docs.xbox.com/fr-CA/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/multiplayer-unity-plugin-quickstart.md)
- [Démarrage rapide Unity](https://docs.xbox.com/fr-CA/services/playfab/sdks/unity3d/quickstart.md)
- [Vue d'ensemble du plugiciel Party pour Unity](https://docs.xbox.com/fr-CA/services/playfab/multiplayer/networking/party-unity-overview.md)
- [Notes de version du plugiciel PlayFab Party pour Unity](https://docs.xbox.com/fr-CA/services/playfab/multiplayer/networking/party-unity-release-notes.md)
- [Démarrage rapide de Photon](https://docs.xbox.com/fr-CA/services/playfab/live-service-management/service-gateway/add-ons/photon/quickstart.md)
