Skip to main content
De forma predeterminada, la mayoría de los SDK de PlayFab almacenan en caché los resultados de inicio de sesión del jugador. Este almacenamiento en caché puede resultar cómodo en el escenario más común, cuando espera un único inicio de sesión de jugador. En los juegos donde se admiten varios jugadores simultáneos o en servidores donde se administra tanto el material de autenticación de los jugadores como las credenciales del servidor, ese almacenamiento en caché puede ser un obstáculo. Para facilitar estos escenarios, los SDK de PlayFab contienen tanto clases de API estáticas como clases de API con instancias.

Clases de API estáticas frente a clases de API con instancias

La mayoría de los ejemplos y del código de muestra de PlayFab se crean con clases de API estáticas. En Unity, por ejemplo, es posible que vea una referencia a PlayFabClientAPI. Estas clases estáticas escriben y leen el estado estático dentro del SDK. Su dependencia del estado estático hace difícil usar estas clases cuando se trabaja con varios jugadores dentro del mismo cliente de juego. Las clases de API con instancias evitan estos problemas a cambio de mayores requisitos de administración y seguimiento por su parte. En los casos en los que necesite admitir varios inicios de sesión de PlayFab simultáneos, se recomienda usar clases de API con instancias. En el SDK de Unity, PlayFabClientInstanceAPI es la versión con instancias de PlayFabClientAPI. Todas las demás clases de API siguen un patrón de nomenclatura similar. Cuando use la versión con instancias de una clase de API, debe crear una instancia de la clase antes de poder llamar a cualquier método. Para crear una instancia, tiene que especificar algún contexto adicional. Para la mayoría de las clases, el contexto adicional necesario es simplemente el contexto de autenticación del jugador. En Unity, este contexto es PlayFabAuthenticationContext. Algunas clases contienen llamadas de inicio de sesión. Para estas llamadas, es posible que aún no tenga el contexto de autenticación de un jugador. Si es así, solo tiene que proporcionar una configuración básica, como un id. de título. Esta configuración se pasa mediante un objeto PlayFabApiSettings.

Uso de clases de API con instancias

Una vez que haya creado una clase de API con instancias con un contexto de autenticación o un objeto de configuración de API apropiados, se puede usar de forma similar a una clase estática. Todos los objetos de solicitud y respuesta son idénticos. La única diferencia es que usted es responsable de hacer el seguimiento de la duración de la instancia y de asegurarse de que cualquier posible llamador de PlayFab reciba una instancia apropiada. Cuando trabaje con varios jugadores, necesitará varias instancias de cualquier clase de API, una por jugador. A menudo, lo más fácil es administrar estas instancias encapsuladas detrás de un objeto de jugador como propietario, pero eso queda a su elección. Las clases con instancias que inician la sesión de un jugador (como PlayFabClientInstanceAPI) también crean y almacenan en caché el contexto de autenticación de ese jugador dentro de la instancia de la clase de API. Esta característica le permite hacer referencia fácilmente al contexto de autenticación al crear cualquier otra clase que necesite.

Ejemplo de Unity

Este código de ejemplo muestra cómo varios jugadores pueden iniciar sesión en un juego y tener un estado independiente del que se hace el seguimiento en instancias de clase separadas. En este ejemplo, las clases de API y la funcionalidad básica se encapsulan detrás de un objeto PlayFabPlayer simplista. Cuando se inicia el juego, iniciamos la sesión de dos jugadores y, después, obtenemos los datos almacenados en PlayFab para cada uno de ellos.

Ejemplo de Unreal

Este código de ejemplo muestra un actor de Unreal que contiene su propio contexto de inicio de sesión de PlayFab. Muestra cómo encapsular las clases de instancia de la API de PlayFab dentro de una clase ALoginActor. Se pueden agregar varias instancias de ALoginActor a un mapa, asignarles sus propios CustomIds y realizar operaciones de PlayFab de forma independiente. LoginActor.h:
LoginActor.cpp:

Autenticación de servidor

De forma similar a como las clases de API con instancias permiten que un cliente de juego controle varios jugadores, también permiten que los servidores controlen una combinación de autenticación de título y de jugador, o incluso varios títulos simultáneamente. El patrón básico es casi idéntico. Cree una instancia de una clase de API para controlar el inicio de sesión del servidor, proporcione a esa instancia el objeto PlayFabApiSettings apropiado y, después, llame a una API de autenticación. Si está en un servidor, esa API suele ser PlayFabAuthenticationInstanceAPI.GetEntityToken. Al igual que con el inicio de sesión de un jugador, el resultado de una llamada a GetEntityToken se almacena en caché en la instancia de la clase de API y se puede usar como referencia para crear más instancias de clases de API mediante la propiedad de instancia authenticationContext.
Última modificación el 28 de agosto de 2026