Skip to main content
En esta sección se proporciona información sobre el uso de PlayFab junto con los servicios multijugador de Photon, como Photon Realtime y Photon Unity Networking (PUN). Actualmente, ofrecemos las siguientes integraciones de Photon:
  • Autenticar jugadores de Photon con PlayFab.
  • Escuchar eventos de sala mediante devoluciones de llamada de CloudScript de PlayFab.

Inicio rápido de Photon

En este inicio rápido se muestra cómo configurar el multijugador de Photon para que funcione con PlayFab. Actualmente, PlayFab ofrece las siguientes integraciones de Photon:
  • Autenticar jugadores de Photon con PlayFab.
  • Escuchar eventos de sala mediante devoluciones de llamada de CloudScript de PlayFab.
En este inicio rápido, mostramos cómo funcionan ambas características usando el último proyecto de ejemplo de Photon para Unity.
Para obtener una experiencia multijugador y de chat de PlayFab totalmente compatible en Unity, consulte el complemento de Unity de PlayFab Party para obtener más información.

Requisitos previos

  1. Un proyecto de Unity con el SDK de PlayFab importado y un título configurado.
  2. El título de PlayFab registrado.
Esta guía omite la configuración de la aplicación de chat. Para integrar su aplicación de chat, cree una nueva aplicación de Photon Chat y escriba el App ID en los cuadros correspondientes de Unity y de la página del complemento de Photon en Game Manager de PlayFab.

Configuración de una aplicación de Photon

  1. Una vez que se haya registrado e iniciado sesión en el panel de Photon, seleccione Create a new App.
Crear una nueva aplicación de Photon
  1. Seleccione el Photon Type.
  2. Elija un Name.
  3. Cree una Description.
  4. Envíe el formulario seleccionando Create.
Formulario de nueva aplicación

Configuración de la autenticación

  1. Busque la aplicación recién creada en la lista y seleccione Manage.
Administrar la aplicación de prueba
  1. En el panel de la aplicación, busque y guarde el App ID, que se encuentra debajo del título de la página.
Guardar el App ID
  1. Localice la sección Authentication.
  2. Seleccione Custom Server.
Autenticación con servidor personalizado La página siguiente le permite configurar la dirección URL de autenticación para Photon.
Reemplace el marcador de posición PlayFabTitleId por su propio id. de título.
  1. Escriba la URL.
  2. Envíe el formulario seleccionando el botón Create.
Escribir la dirección URL de autenticación

Configuración de un título de PlayFab para Photon

Vaya a la página de Game Manager de su título y, a continuación:
  1. Vaya a la pestaña Add-ons.
  2. En la lista de complementos, busque y seleccione Photon.
Pestaña de complementos de Game Manager
  1. La página del complemento de Photon le permite instalar Photon especificando su Photon Realtime Application ID.
    • Opcionalmente, puede especificar el Chat App ID.
    • Una vez que instale el complemento (3), se genera una clave secreta de Photon (2).
    • Guárdela para usarla más adelante al configurar los webhooks.
Recuerde guardar su clave secreta de Photon en un lugar seguro y de fácil acceso. Resulta útil al configurar los webhooks.
Copiar el App ID de Realtime

Configuración de los webhooks de Photon

Como integración opcional, Photon puede transmitir determinados eventos a su CloudScript de PlayFab. Esto se hace con webhooks:
  • Especifique una dirección URL base.
  • A continuación, especifique la ruta de acceso para cada uno de los eventos disponibles.
  • Una ruta de acceso es, en la práctica, un nombre de controlador implementado en su CloudScript.
La dirección URL base tiene el siguiente formato:
Asegúrese de reemplazar el marcador de posición Title Id por su propio id. de título.
Asegúrese de reemplazar el token PhotonSecretKey por la clave secreta que generó en la página del complemento de Photon.
  1. Rellene la Base URL.
  2. Asigne un nombre de controlador de CloudScript para cada uno de los eventos disponibles.
  3. Quite los CustomHttpHeaders que haya.
  4. Envíelo seleccionando el botón Save.
Asignar controladores de eventos de CloudScript

Configuración de un proyecto de Unity

Esta guía asume que ya tiene el SDK de PlayFab importado, configurado y con la configuración del título establecida. Importar Photon Unity Justo después de que finalice el proceso de importación, se abre la ventana PUN Setup.
  • Escriba su Realtime Application ID (1), que se encuentra en el panel de aplicaciones de Photon para la aplicación de Photon que creó.
  • Seleccione Setup Project (2).
  • Una vez finalizada la configuración, seleccione Close (3).
Configuración de PUN Si se aceptó el AppId, el objeto Photon Server Settings queda seleccionado y visible en la ventana Inspector de Unity. Para acceder manualmente al objeto Server Settings:
  • Vaya al panel superior de la ventana.
  • Seleccione Window.
  • A continuación, seleccione Photon Unity Networking (1).
  • Por último, seleccione Highlight Server Settings (2).
  • La ventana estándar del proyecto de Unity muestra el objeto PhotonServerSettings (3).
  • Seleccione el objeto para ver su configuración en la ventana Inspector de Unity.
Configuración del servidor de Photon
Como parte de PhotonServerSettings, tiene la opción de asignar el Chat Application ID.
En este punto, el proyecto está configurado.

Implementación de la autenticación de PlayFab con Photon

Cuando habilita el complemento de Photon para su título en Game Manager de PlayFab y configura la autenticación en el panel de la aplicación de Photon, PlayFab le permite autenticar a los jugadores existentes de PlayFab dentro del entorno de Photon. Esto significa que puede evitar por completo implementar cualquier administración de usuarios para Photon.
  1. Vaya a la escena DemoHub-Scene-V2 del paquete Photon Unity Networking Free, la versión Classic.
    • Esta escena es un centro para todos los ejemplos del paquete.
    • Como es la primera escena que se carga, agreguemos un pequeño script para habilitar la autenticación de PlayFab con Photon.
  2. Cree un GameObject vacío llamado PlayFabAuthenticator.
  3. A continuación, en la ventana Inspector de Unity, agregue un componente con el mismo nombre a este GameObject.
Agregar el componente de autenticación Seleccione el icono de engranaje y, a continuación, elija editar el script en el menú desplegable. Copie y pegue el código del componente PlayFabAuthenticator, y guarde y cierre el archivo.

Prueba de la autenticación de PlayFab con Photon

  1. Inicie la escena.
  2. Inspeccione el flujo de mensajes de la consola. Compruebe que:
  3. La autenticación en PlayFab se realizó correctamente.
  4. Se adquirió el token de Photon.
La siguiente imagen ilustra el flujo correcto. Iniciar la escena Una vez adquirido el token de Photon y completada la autenticación, podemos probar las demostraciones de Photon. Por ejemplo, inicie una demostración llamada Demo Boxes.
  1. Para asegurarse de que la autenticación de PlayFab se ha completado, seleccione Demo Boxes.
  2. A continuación, seleccione Load Demo, como se muestra en la siguiente imagen.
Cargar la demostración Photon comienza a generar mensajes de depuración. Al supervisar la consola, puede detectar fácilmente si tiene algún problema de autenticación. Consola de depuración de Photon Asegúrese de que no haya errores de Authentication Denied en la consola. En este punto, ha configurado la integración mínima de PlayFab y Photon.

Eventos de sala de Photon + CloudScript

El sistema de emparejamiento de Photon tiene el concepto de sala. Si no está familiarizado con este concepto, consulte la guía de emparejamiento de Photon. PlayFab le permite interceptar varios eventos de sala. Los siguientes eventos de sala solo requieren CloudScript para ser interceptados:
  • RoomCreated
  • RoomJoined
  • RoomLeft
  • RoomClosed
Los siguientes eventos requieren control adicional sobre el código de Unity para ser interceptados (los detalles se dan más adelante en este documento):
  • RoomPropertyUpdated
  • RoomEventRaised
Una vez que introduce un controlador para un evento de sala, este se convierte en una parte esencial del flujo de control de eventos. Por lo tanto, los errores producidos al ejecutar su CloudScript pueden causar problemas en todo el sistema. Por ejemplo, si el controlador RoomCreated produce un error, sus clientes también producirán un error y no podrán conectarse correctamente.
Construyamos un CloudScript de PlayFab definiendo un controlador para cada tipo de evento individualmente.

Controlador de Room Created

El controlador RoomCreated se invoca cada vez que se crea una sala de Photon. El siguiente controlador de CloudScript intercepta dichos eventos.
Puede obtener más datos sobre el evento usando el argumento “args”.

Controlador de Room Joined

El controlador RoomJoined se invoca cada vez que un jugador se une a la sala. El siguiente controlador de CloudScript intercepta este tipo de evento.
Esta devolución de llamada no se invoca para el primer usuario que entra en la sala. Use RoomCreated para interceptar al primer jugador que se une. Puede obtener más datos sobre el evento usando el argumento “args”.

Room left

El controlador RoomLeft se invoca cada vez que un jugador abandona la sala. El siguiente controlador de CloudScript intercepta este tipo de evento.
Puede obtener más datos sobre el evento usando el argumento “args”.

Controlador de Room Closed

El controlador RoomClosed se invoca cada vez que el último jugador abandona la sala y no quedan jugadores en ella. El siguiente controlador de CloudScript intercepta este tipo de evento.
Puede obtener más datos sobre el evento usando el argumento “args”.

Room Property Updated

El controlador RoomPropertyUpdated se invoca cada vez que se cambia una propiedad de la sala. El siguiente controlador de CloudScript intercepta este tipo de evento.
currentPlayerId no está definido en este controlador. Si la propiedad de la sala se cambió desde el cliente, puede usar el argumento “args” y consultar UserId para obtener el jugador responsable.
Puede obtener más datos sobre el evento usando el argumento “args”.
Al cambiar propiedades personalizadas de la sala usando el cliente de Photon para Unity, es importante marcar la llamada para que pase el evento al webhook (PlayFab en este caso).

Room Event Raised

El evento Room Event Raised se llama cada vez que se genera un evento de sala personalizado. El siguiente controlador de CloudScript intercepta este tipo de evento.
Puede obtener más datos sobre el evento usando el argumento “args”.
Al generar eventos de sala personalizados usando el cliente de Photon para Unity, es importante marcar la llamada para que pase el evento a los webhooks (PlayFab en este caso).

Prueba de los controladores de eventos de sala

Este ejemplo amplía el ejemplo anterior (autenticación de PlayFab + Photon). Cargue el siguiente CloudScript para su título.
El código no hace más que publicar un nuevo evento de título cada vez que se invoca una devolución de llamada de Photon. Aunque no tiene utilidad en producción, este ejemplo nos permite ver claramente cómo se invocan las devoluciones de llamada. Amplíe el script PlayFabAuthenticator incluyendo un nuevo código de ejemplo que genere un evento personalizado y establezca una propiedad de sala personalizada. La versión ampliada también usa un método Awake para no destruir el objeto entre cargas de escenas.
  • Ejecute la escena del centro y espere a que se complete la autenticación de PlayFab (1).
  • A continuación, cargue la escena Boxes Demo (2).
Cargar la escena Demo Boxes
  • Una vez cargada la escena, espere a que el par se conecte a la sala recién creada (1).
  • A continuación, seleccione Execute Example en la esquina superior izquierda (2).
  • Observe la salida de la consola (3).
  • Asegúrese de que no se haya producido ningún error.
Ejecutar el ejemplo No olvide detener la reproducción en Unity. Esto se hace para asegurarnos de que también recibimos los eventos RoomLeft y RoomClosed. Vaya a la página de Game Manager del título y observe el panel de PlayStream. Debería poder ver los eventos generados como resultado de nuestro código de CloudScript que controla los eventos de Photon.
  1. Inicialmente, nuestra instancia de Photon no tenía ninguna sala abierta. Cuando iniciamos el ejemplo, Photon creó la sala para la Boxes Demo.
  2. El primer jugador en unirse es el jugador que solicitó la sala. Por lo tanto, no se registró ningún evento RoomJoined. A continuación, ejecutamos nuestro código de ejemplo:
    • Primero, generamos un evento de sala personalizado.
    • Después, establecimos una propiedad de sala personalizada.
    • Luego detuvimos el modo de reproducción de Unity. Esto hizo que nuestro cliente abandonara la sala.
  3. Como nuestro cliente desconectado era el último, no quedan más clientes y Photon cierra la sala.
Todos los eventos deberían quedar registrados en el flujo de eventos de PlayStream, como se muestra en la siguiente imagen. Flujo de eventos de PlayStream En este punto, ha integrado por completo la compatibilidad con eventos de Photon en su título de PlayFab.
Última modificación el 28 de agosto de 2026