Passer au contenu principal
Cette section fournit des informations sur l’utilisation de PlayFab avec les services multijoueurs Photon, tels que Photon RealTime et Photon Unity Networking (PUN). Actuellement, nous proposons les intégrations Photon suivantes :
  • Authentification des joueurs Photon avec PlayFab.
  • Écoute des événements de salle à l’aide des rappels CloudScript de PlayFab.

Démarrage rapide de Photon

Ce démarrage rapide montre comment configurer Photon Multiplayer pour qu’il fonctionne avec PlayFab. Actuellement, PlayFab propose les intégrations Photon suivantes :
  • Authentification des joueurs Photon avec PlayFab.
  • Écoute des événements de salle à l’aide des rappels CloudScript de PlayFab.
Dans ce démarrage rapide, nous illustrons le fonctionnement de ces deux fonctionnalités à l’aide du dernier exemple de projet Photon Unity.
Pour une expérience multijoueur et de chat PlayFab entièrement prise en charge sur Unity, consultez le plug-in Unity PlayFab Party pour plus d’informations.

Prérequis

  1. Un projet Unity dans lequel le SDK PlayFab est importé, avec un titre configuré.
  2. Le titre PlayFab inscrit.
Ce guide omet les paramètres de l’application de chat. Pour intégrer votre application de chat, créez une nouvelle application Photon Chat et entrez l’App ID dans les zones correspondantes d’Unity et de la page du module complémentaire Photon de PlayFab Game Manager.

Configuration d’une application Photon

  1. Une fois inscrit et connecté au tableau de bord Photon, sélectionnez Create a new App.
Créer une application Photon
  1. Sélectionnez le Photon Type.
  2. Choisissez un Name.
  3. Rédigez une Description.
  4. Validez en sélectionnant Create.
Formulaire de nouvelle application

Configuration de l’authentification

  1. Trouvez l’application nouvellement créée dans la liste et sélectionnez Manage.
Gérer l'application de test
  1. Dans le tableau de bord de l’Application, trouvez et enregistrez l’App ID situé sous le Title de la page.
Enregistrer l'App ID
  1. Repérez la section Authentication.
  2. Sélectionnez Custom Server.
Authentification par serveur personnalisé La page suivante vous permet de configurer l’URL d’authentification pour Photon.
Remplacez l’espace réservé PlayFabTitleId par votre propre Title Id.
  1. Entrez l’URL.
  2. Validez en sélectionnant le bouton Create.
Entrer l'URL d'authentification

Configuration d’un titre PlayFab pour Photon

Accédez à la page Game Manager de votre titre, puis :
  1. Accédez à l’onglet Add-ons.
  2. Dans la liste des Add-ons, trouvez et sélectionnez Photon.
Onglet Add-ons de Game Manager
  1. La page Photon Add-on vous permet d’installer Photon en spécifiant votre Photon Realtime Application ID.
    • Vous pouvez éventuellement spécifier le Chat App ID.
    • Une fois le module complémentaire (3) installé, une Photon secret Key est générée (2).
    • Enregistrez-la pour une utilisation ultérieure lors de la configuration des webhooks.
N’oubliez pas d’enregistrer votre clé secrète Photon en lieu sûr, à un endroit facilement accessible. Elle vous sera utile lors de la configuration des webhooks.
Copier le Realtime App ID

Configuration des webhooks Photon

Dans le cadre d’une intégration facultative, Photon peut transmettre certains événements à votre CloudScript PlayFab. Cela se fait à l’aide de webhooks :
  • Vous spécifiez une URL de base.
  • Vous spécifiez ensuite un chemin pour chacun des événements disponibles.
  • Un chemin correspond en fait au nom d’un gestionnaire implémenté dans votre CloudScript.
L’URL de base a le format suivant :
Veillez à remplacer l’espace réservé Title Id par votre propre Title Id.
Veillez à remplacer le jeton PhotonSecretKey par la clé secrète que vous avez générée sur la page Photon Add-on.
  1. Renseignez la Base URL.
  2. Attribuez un Name de gestionnaire CloudScript à chacun des Events disponibles.
  3. Supprimez les éventuels CustomHttpHeaders.
  4. Validez en sélectionnant le bouton Save.
Attribuer des gestionnaires d'événements CloudScript

Configuration d’un projet Unity

Ce guide suppose que le SDK PlayFab est déjà importé et configuré, et que les paramètres du titre sont configurés.
  • Commencez par accéder à l’Asset Store.
  • Repérez le package Photon Unity Networking Free.
  • Sélectionnez Import (1).
  • Vous pouvez examiner les fichiers importés.
  • Sélectionnez ensuite Import (2).
Importer Photon Unity Juste après la fin du processus d’importation, la fenêtre PUN Setup s’ouvre.
  • Entrez votre Realtime Application ID (1), disponible dans le Photon Application Dashboard pour la Photon App que vous avez créée.
  • Sélectionnez Setup Project (2).
  • Une fois la configuration terminée, sélectionnez Close (3).
Configuration de PUN Si l’AppId a été accepté, l’objet Photon Server Settings est sélectionné et visible dans la fenêtre Unity Inspector. Pour accéder manuellement à l’objet Server Settings :
  • Accédez au panneau supérieur de la fenêtre.
  • Sélectionnez Window.
  • Sélectionnez ensuite Photon Unity Networking (1).
  • Enfin, sélectionnez Highlight Server Settings (2).
  • La fenêtre de projet Standard Unity affiche l’objet PhotonServerSettings (3).
  • Sélectionnez l’objet pour afficher ses paramètres dans la fenêtre Unity Inspector.
Paramètres du serveur Photon
Dans PhotonServerSettings, vous avez la possibilité d’attribuer le Chat Application ID.
À ce stade, le projet est configuré.

Implémentation de l’authentification de PlayFab vers Photon

Lorsque vous activez le Photon Add-on pour votre titre dans PlayFab Game Manager et que vous configurez l’authentification dans le tableau de bord de la Photon Application, PlayFab vous permet d’authentifier les joueurs PlayFab existants dans l’environnement Photon. Cela signifie que vous pouvez éviter complètement d’implémenter une gestion des utilisateurs pour Photon.
  1. Accédez à la scène DemoHub-Scene-V2 du package Photon Unity Networking Free, version Classic.
    • Cette scène est un hub pour tous les exemples du package.
    • Comme il s’agit de la première scène chargée, ajoutons un petit script pour permettre l’authentification de PlayFab avec Photon.
  2. Créez un GameObject vide nommé PlayFabAuthenticator.
  3. Ensuite, dans la fenêtre Unity Inspector, ajoutez un composant portant le même nom à ce GameObject.
Ajouter le composant d'authentification Sélectionnez l’icône d’engrenage, puis choisissez de modifier le script dans le menu déroulant. Copiez et collez le code du composant PlayFabAuthenticator, puis enregistrez et fermez le fichier.

Test de l’authentification de PlayFab vers Photon

  1. Démarrez la scène.
  2. Examinez le flux des messages de la console. Vérifiez que :
  3. L’authentification auprès de PlayFab elle-même a réussi.
  4. Le jeton Photon a été obtenu.
L’image suivante illustre le flux correct. Démarrer la scène Une fois le jeton Photon obtenu et l’authentification terminée, nous pouvons essayer les démos Photon. Par exemple, lancez une démo appelée Demo Boxes.
  1. Pour vous assurer que l’authentification PlayFab est terminée, sélectionnez Demo Boxes.
  2. Sélectionnez ensuite Load Demo, comme illustré dans l’image suivante.
Charger la démo Photon commence à afficher des messages de débogage. En surveillant votre console, vous pouvez facilement repérer d’éventuels problèmes d’authentification. Console de débogage Photon Assurez-vous qu’aucune erreur Authentication Denied n’apparaît dans la console. À ce stade, vous avez mis en place une intégration minimale de PlayFab et Photon.

Événements de salle Photon + CloudScript

Le système de matchmaking de Photon repose sur le concept de salle (Room). Si vous ne connaissez pas ce concept, consultez le guide de matchmaking Photon. PlayFab vous permet d’intercepter divers événements de salle. Les événements de salle suivants ne nécessitent que CloudScript pour être interceptés :
  • RoomCreated
  • RoomJoined
  • RoomLeft
  • RoomClosed
Les événements suivants nécessitent un contrôle supplémentaire sur le code Unity pour être interceptés (les détails sont fournis plus loin dans ce document) :
  • RoomPropertyUpdated
  • RoomEventRaised
Dès que vous introduisez un gestionnaire pour un événement de salle, il devient un élément essentiel du flux de traitement des événements. Les erreurs produites lors de l’exécution de votre CloudScript peuvent donc causer des problèmes pour l’ensemble du système. Par exemple, si le gestionnaire RoomCreated lève une erreur, vos clients lèveront également une erreur et ne pourront pas se connecter correctement.
Construisons un CloudScript PlayFab en définissant un gestionnaire pour chaque type d’événement individuellement.

Gestionnaire Room Created

Le gestionnaire RoomCreated est appelé chaque fois qu’une salle Photon est créée. Le gestionnaire CloudScript suivant intercepte ces événements.
Vous pouvez obtenir davantage de données sur l’événement à l’aide de l’argument “args”.

Gestionnaire Room Joined

Le gestionnaire RoomJoined est appelé chaque fois qu’un joueur rejoint la salle. Le gestionnaire CloudScript suivant intercepte ce type d’événement.
Ce rappel n’est pas appelé pour le premier utilisateur qui entre dans la salle. Utilisez RoomCreated pour intercepter le premier joueur qui la rejoint. Vous pouvez obtenir davantage de données sur l’événement à l’aide de l’argument “args”.

Room left

Le gestionnaire RoomLeft est appelé chaque fois qu’un joueur quitte la salle. Le gestionnaire CloudScript suivant intercepte ce type d’événement.
Vous pouvez obtenir davantage de données sur l’événement à l’aide de l’argument “args”.

Gestionnaire Room Closed

Le gestionnaire RoomClosed est appelé chaque fois que le dernier joueur quitte la salle et qu’il ne reste plus aucun joueur. Le gestionnaire CloudScript suivant intercepte ce type d’événement.
Vous pouvez obtenir davantage de données sur l’événement à l’aide de l’argument “args”.

Room Property Updated

Le gestionnaire RoomPropertyUpdated est appelé chaque fois qu’une propriété de la salle est modifiée. Le gestionnaire CloudScript suivant intercepte ce type d’événement.
currentPlayerId n’est pas défini dans ce gestionnaire. Si la propriété de la salle a été modifiée depuis le client, vous pouvez utiliser l’argument “args” et vous reporter au UserId pour obtenir le joueur responsable.
Vous pouvez obtenir davantage de données sur l’événement à l’aide de l’argument “args”.
Lorsque vous modifiez des propriétés de salle personnalisées à l’aide du client Unity Photon, il est important de marquer l’appel afin qu’il transmette l’événement au webhook (PlayFab dans ce cas).

Room Event Raised

Room Event Raised est appelé chaque fois qu’un événement de salle personnalisé est déclenché. Le gestionnaire CloudScript suivant intercepte ce type d’événement.
Vous pouvez obtenir davantage de données sur l’événement à l’aide de l’argument “args”.
Lorsque vous déclenchez des événements de salle personnalisés à l’aide du client Unity Photon, il est important de marquer l’appel afin qu’il transmette l’événement aux webhooks (PlayFab dans ce cas).

Test des gestionnaires d’événements de salle

Cet exemple prolonge l’exemple précédent (authentification PlayFab + Photon). Chargez le CloudScript suivant pour votre titre.
Le code se contente de publier un nouvel événement de titre chaque fois qu’un rappel Photon est appelé. Sans utilité en production, cet exemple nous permet de voir clairement comment les rappels sont appelés. Étendez le script PlayFabAuthenticator en y incluant un nouvel exemple de code qui déclenche un événement personnalisé et définit une propriété de salle personnalisée. La version étendue utilise également une méthode Awake afin de ne pas détruire l’objet entre les chargements de scène.
  • Exécutez la scène hub et attendez la fin de l’authentification PlayFab (1).
  • Chargez ensuite la scène Boxes Demo (2).
Charger la scène Demo Boxes
  • Une fois la scène chargée, attendez que le pair se connecte à la salle nouvellement créée (1).
  • Sélectionnez ensuite Execute Example dans le coin supérieur gauche (2).
  • Observez la sortie de la console (3).
  • Assurez-vous qu’aucune erreur ne s’est produite.
Exécuter l'exemple N’oubliez pas d’arrêter la lecture dans Unity. Cela permet de nous assurer que nous recevons également les événements RoomLeft et RoomClosed. Accédez à la page Game Manager du titre et observez le panneau PlayStream. Vous devriez voir les événements générés par notre code CloudScript lors du traitement des événements Photon.
  1. Au départ, notre instance Photon n’avait aucune salle ouverte. Lorsque nous avons lancé l’exemple, Photon a créé la salle pour la démo Boxes.
  2. Le premier joueur à rejoindre la salle est celui qui l’a demandée. Aucun RoomJoined Event n’a donc été enregistré. Nous avons ensuite exécuté notre exemple de code :
    • Nous avons d’abord déclenché un Room Event personnalisé.
    • Nous avons ensuite défini une Room Property personnalisée.
    • Puis nous avons arrêté le mode lecture d’Unity, ce qui a entraîné le départ de notre client de la salle.
  3. Comme notre client déconnecté était le dernier, il n’y a plus de clients et Photon ferme la salle.
Tous les événements doivent être consignés dans le flux d’événements PlayStream, comme illustré dans l’image suivante. Flux d'événements PlayStream À ce stade, vous avez entièrement intégré la prise en charge des événements Photon à votre titre PlayFab.
Dernière modification le 8 octobre 2026