- 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.
Pour une expérience multijoueur et de clavardage PlayFab entièrement prise en charge sur Unity, consultez le plugiciel Unity PlayFab Party pour plus de renseignements.
Prérequis
- Un projet Unity dans lequel le SDK PlayFab est importé, avec un titre configuré.
- Le titre PlayFab inscrit.
Ce guide omet les paramètres de l’application de clavardage. Pour intégrer votre application de clavardage, 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
- Une fois inscrit et connecté au tableau de bord Photon, sélectionnez Create a new App.

- Sélectionnez le Photon Type.
- Choisissez un Name.
- Rédigez une Description.
- Validez en sélectionnant Create.

Configuration de l’authentification
- Trouvez l’application nouvellement créée dans la liste et sélectionnez Manage.

- Dans le tableau de bord de l’Application, trouvez et enregistrez l’App ID situé sous le Title de la page.

- Repérez la section Authentication.
- Sélectionnez Custom Server.

PlayFabTitleId par votre propre Title Id.
- Entrez l’URL.
- Validez en sélectionnant le bouton Create.

Configuration d’un titre PlayFab pour Photon
Accédez à la page Game Manager de votre titre, puis :- Accédez à l’onglet Add-ons.
- Dans la liste des Add-ons, trouvez et sélectionnez Photon.

- 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.

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.
Title Id par votre propre Title Id.
PhotonSecretKey par la clé secrète que vous avez générée sur la page Photon Add-on.
- Renseignez la Base URL.
- Attribuez un Name de gestionnaire CloudScript à chacun des Events disponibles.
- Supprimez les éventuels CustomHttpHeaders.
- Validez en sélectionnant le bouton Save.

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).

- 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).

- 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.

Dans PhotonServerSettings, vous avez la possibilité d’attribuer le Chat Application ID.
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.- 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.
- Créez un GameObject vide nommé PlayFabAuthenticator.
- Ensuite, dans la fenêtre Unity Inspector, ajoutez un composant portant le même nom à ce GameObject.

PlayFabAuthenticator, puis enregistrez et fermez le fichier.
Test de l’authentification de PlayFab vers Photon
- Démarrez la scène.
- Examinez le flux des messages de la console. Vérifiez que :
- L’authentification auprès de PlayFab elle-même a réussi.
- Le jeton Photon a été obtenu.

- Pour vous assurer que l’authentification PlayFab est terminée, sélectionnez Demo Boxes.
- Sélectionnez ensuite Load Demo, comme illustré dans l’image suivante.


É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 :RoomCreatedRoomJoinedRoomLeftRoomClosed
RoomPropertyUpdatedRoomEventRaised
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.Gestionnaire Room Created
Le gestionnaireRoomCreated 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 gestionnaireRoomJoined est appelé chaque fois qu’un joueur rejoint la salle. Le gestionnaire CloudScript suivant intercepte ce type d’événement.
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 gestionnaireRoomLeft est appelé chaque fois qu’un joueur quitte la salle. Le gestionnaire CloudScript suivant intercepte ce type d’événement.
Gestionnaire Room Closed
Le gestionnaireRoomClosed 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.
Room Property Updated
Le gestionnaireRoomPropertyUpdated 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.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.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.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).

- 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.

- 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.
- 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.
- Comme notre client déconnecté était le dernier, il n’y a plus de clients et Photon ferme la salle.

