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

# Inicio rápido de Unreal Engine

> Instale el complemento de PlayFab de Unreal Marketplace y realice su primera llamada a la API de PlayFab desde un proyecto de Unreal Engine mediante C++ o Blueprints.

# Inicio rápido: biblioteca cliente de PlayFab para Unreal Engine

Comience a usar el complemento de PlayFab para Unreal Engine. Siga este inicio rápido para instalar el complemento de PlayFab para Unreal Engine y crear aplicaciones de ejemplo que usan la biblioteca cliente de C++ y la interfaz de Blueprint.

Puede usar el complemento de PlayFab para Unreal Engine para administrar las operaciones LiveOps de su título y realizar operaciones de administración, cliente y servidor, como:

* Autenticación de jugadores.
* Administración de artículos virtuales y moneda.
* Creación de características sociales, como listas de amigos.

  [Documentación de referencia de las API](/services/playfab/api-references) | [Código fuente de la biblioteca](https://github.com/PlayFab/UnrealMarketplacePlugin) | [Unreal Marketplace](https://www.unrealengine.com/marketplace/playfab-sdk)

## Requisitos previos

* Una [cuenta de desarrollador de PlayFab](https://developer.playfab.com).
* Una instalación de [Visual Studio](https://visualstudio.microsoft.com/downloads/) configurada para Unreal Engine. Para obtener información sobre la configuración de Visual Studio, consulte [Setting Up Visual Studio for Unreal Engine](https://docs.unrealengine.com/en-US/Programming/Development/VisualStudioSetup/index.html).
* Una instalación de [Unreal Engine](https://www.unrealengine.com/download). Para obtener información sobre la instalación de Unreal Engine, consulte la [guía de instalación de Unreal Engine](https://docs.unrealengine.com/4.27/en-US/Basics/Projects/Browser/).
* Una instalación del complemento de PlayFab para Unreal. Puede instalar el complemento de Unreal desde el [marketplace de Unreal Engine](https://www.unrealengine.com/marketplace/playfab-sdk).

## Crear un proyecto de Unreal

En Unreal Engine, cree un nuevo proyecto de Unreal. Para obtener instrucciones detalladas, siga la [guía Create a New Project](https://docs.unrealengine.com/4.27/en-US/Basics/Projects/Browser/).

1. En **Project Category**, seleccione **Games**.
2. En **Select Template**, seleccione **Blank**.
3. En **Project Settings**, seleccione **C++** o **Blueprint**.
4. Elija **No Starter Content**.
5. Elija un nombre para su proyecto, como **MyProject**.

## Habilitar el complemento de PlayFab en su proyecto de Unreal

Para habilitar el complemento de PlayFab:

1. En el menú **Settings**, en **Game Specific Settings**, seleccione **Plugins**.
2. Habilite el complemento **PlayFab** y reinicie Unreal Engine según sea necesario.

Si "PlayFab" no aparece en **Plugins**, compruebe que el complemento esté instalado desde Unreal Marketplace. Reinicie el editor de Unreal. Después, vuelva a abrir **Plugins** y busque "PlayFab".

### Agregar PlayFab como dependencia de módulo en C++

En Visual Studio, agregue PlayFab como dependencia de módulo en su proyecto de C++:

1. En el menú **View**, abra el **Solution Explorer**, que muestra los archivos de su proyecto de C++.

2. En el Solution Explorer, vaya a **Solution\Games\YourProjectName\Source** y abra **YourProjectName.Build.cs**.

3. Agregue la siguiente línea:

   ```cpp theme={null}
   PrivateDependencyModuleNames.AddRange(new string[] { "PlayFab", "PlayFabCpp", "PlayFabCommon" });
   ```

4. Guarde los cambios.

## Generar los archivos de proyecto de Visual Studio necesarios

Para actualizar y generar los archivos de proyecto de Visual Studio necesarios para usar el complemento de PlayFab:

1. Abra una ventana del explorador de archivos y vaya a la carpeta donde se encuentran los archivos de su proyecto.
2. En la carpeta raíz del proyecto, haga clic con el botón derecho en el archivo YourProjectName.uproject.
3. En el menú contextual, seleccione **Generate Visual Studio project files**.

## Llamar a PlayFab con C++

Los pasos siguientes le guían por la creación de un título que inicia sesión en PlayFab mediante un identificador personalizado. Para obtener información sobre cómo iniciar sesión desde un proyecto de Blueprints, consulte "Llamar a PlayFab desde Blueprints de Unreal" más adelante en este artículo.

### Crear un nuevo Actor

Para crear un nuevo Actor:

1. En el menú **File**, seleccione **New C++ Class**.
2. En **Parent Class**, seleccione **Actor**.
3. Asigne a su actor el nombre **LoginActor**. Después de crear el Actor, Unreal Engine abre automáticamente su entorno de desarrollo de C++ y carga LoginActor.cpp y LoginActor.h.

<Info>
  Para los fines de este inicio rápido, debe asignar al Actor el nombre **LoginActor**. Si asigna un nombre diferente al Actor, deberá actualizar el código de ejemplo proporcionado en este inicio rápido para que coincida con el nuevo nombre.
</Info>

4. Arrastre y suelte su nuevo Actor **LoginActor** desde el Content Browser hasta el panel Viewport. Ahora aparece en el panel "World Outliner".
   Si no ve su **LoginActor**, seleccione el icono **Show or hide the source panel**. Después, seleccione el nombre de su proyecto bajo las clases de C++.

   <img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/show-login-actor.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=86853f5d47d5ca2a44dc0e9612204080" alt="Content Browser con el icono del panel de origen." width="629" height="233" data-path="images/playfab/sdks/unreal/show-login-actor.png" />

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/login-actor-world.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=c46ab4ff0751332401e88629a8f058b3" alt="Login Actor en el mundo" width="1062" height="524" data-path="images/playfab/sdks/unreal/login-actor-world.png" />

### Agregar llamadas a la API de PlayFab a su LoginActor de C++

En este inicio rápido, usa [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid) para iniciar sesión. Aunque `LoginWithCustomId` es fácil de usar para comenzar, recomendamos pasar a un método de autenticación de jugadores más seguro para el lanzamiento de su juego. Consulte [Conceptos básicos y procedimientos recomendados de inicio de sesión](/services/playfab/identity/player-identity/login/login-basics-best-practices) para obtener información sobre cómo implementar una funcionalidad de inicio de sesión sólida.

La llamada a `LoginWithCustomID` se realiza en su **LoginActor**. Para agregar el código específico de PlayFab a su **LoginActor**:

1. Reemplace el contenido de LoginActor.h por el código que se muestra:

```cpp theme={null}
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "PlayFab.h"
#include "Core/PlayFabError.h"
#include "Core/PlayFabClientDataModels.h"
#include "LoginActor.generated.h"

UCLASS()
class ALoginActor : public AActor
{
    GENERATED_BODY()
public:
    ALoginActor();
    virtual void BeginPlay() override;
    void OnSuccess(const PlayFab::ClientModels::FLoginResult& Result) const;
    void OnError(const PlayFab::FPlayFabCppError& ErrorResult) const;

    virtual void Tick(float DeltaSeconds) override;
private:
    PlayFabClientPtr clientAPI = nullptr;
};
```

2. Reemplace el contenido de LoginActor.cpp por el código siguiente.

```cpp theme={null}
#include "LoginActor.h"
#include "Core/PlayFabClientAPI.h"

ALoginActor::ALoginActor()
{
    PrimaryActorTick.bCanEverTick = true;
}

void ALoginActor::BeginPlay()
{
    Super::BeginPlay();
    
    GetMutableDefault<UPlayFabRuntimeSettings>()->TitleId = TEXT("144");
    
    clientAPI = IPlayFabModuleInterface::Get().GetClientAPI();

    PlayFab::ClientModels::FLoginWithCustomIDRequest request;
    request.CustomId = TEXT("GettingStartedGuide");
    request.CreateAccount = true;

    clientAPI->LoginWithCustomID(request,
        PlayFab::UPlayFabClientAPI::FLoginWithCustomIDDelegate::CreateUObject(this, &ALoginActor::OnSuccess),
        PlayFab::FPlayFabErrorDelegate::CreateUObject(this, &ALoginActor::OnError)
    );
}

void ALoginActor::OnSuccess(const PlayFab::ClientModels::FLoginResult& Result) const
{
    UE_LOG(LogTemp, Log, TEXT("Congratulations, you made your first successful API call!"));
}

void ALoginActor::OnError(const PlayFab::FPlayFabCppError& ErrorResult) const
{
    UE_LOG(LogTemp, Error, TEXT("Something went wrong with your first API call.\nHere's some debug information:\n%s"), *ErrorResult.GenerateErrorReport());
}

void ALoginActor::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
}
```

<Tip>
  IntelliSense en Visual Studio indicará que no puede encontrar los archivos de inclusión ni el espacio de nombres PlayFab. Puede ignorar estas advertencias sin problema. Cuando ejecute su proyecto, se compilará y ejecutará correctamente.
</Tip>

### Finalizar y ejecutar con C++

Ya está listo para probar una llamada a PlayFab desde Unreal Engine en C++. Los resultados de su llamada de prueba se muestran en el **Output Log** de Unreal Engine.

En Unreal Engine:

1. Muestre el Output Log desde el menú **Windows**: seleccione **Developer Tools** y habilite **Output Log**.
2. En la barra de herramientas, seleccione **Compile** y espere a que Unreal Engine termine de compilar. Mientras se compila el código, Unreal muestra "Compiling C++ Code".
3. Seleccione **Play**. Cuando se ejecuta el código, Unreal muestra lo siguiente en la ventana **Output Log**:

`LogTemp: Congratulations, you made your first successful API call!`

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/call-works.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=d87c28c4bd68f5b72bcb59366eacb795" alt="Llamada correcta en el Output Log" width="1477" height="311" data-path="images/playfab/sdks/unreal/call-works.png" />

## Llamar a PlayFab desde Blueprints de Unreal

Esta sección le guía por la creación de una estructura de Blueprint que usa la API de PlayFab para llamar a [LoginWithCustomID](https://learn.microsoft.com/en-us/rest/api/playfab/client/authentication/login-with-custom-id?view=playfab-rest\&preserve-view=true). Aunque `LoginWithCustomId` es fácil de usar para comenzar, recomendamos pasar a un método de autenticación de jugadores más seguro para el lanzamiento de su juego. Consulte [Conceptos básicos y procedimientos recomendados de inicio de sesión](/services/playfab/identity/player-identity/login/login-basics-best-practices) para obtener información sobre cómo implementar una funcionalidad de inicio de sesión sólida.

<Tip>
  Si comienza desde un proyecto de Blueprint, debe convertirlo en un proyecto de C++ para que las acciones de Blueprint de PlayFab funcionen.
</Tip>

### Crear una estructura de Blueprint

En Unreal Engine, en la barra de herramientas, seleccione **Open Level Blueprint**.

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/uemk-open-lv-bp.jpg?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=d80f85c201032ab8d0394e7a1a89e28e" alt="imagen de ejemplo de apertura del Level Blueprint" width="439" height="439" data-path="images/playfab/sdks/unreal/uemk-open-lv-bp.jpg" />

El EventGraph se abre y viene rellenado previamente con dos acciones: `Event BeginPlay` y `Event Tick`.

Acciones que se usan en este inicio rápido:

* `Set Play Fab Settings`
* `Login with Custom ID`
* `Make ClientLoginWithCustomIDRequest`
* `AddCustomEvent` x 2
* `Break PlayFabError`
* `Print String` x 2

Cree su Blueprint de la siguiente manera:

* Seleccione el pin de salida de `Event BeginPlay` y arrástrelo a una ubicación libre del **Event Graph**. En el cuadro de diálogo **Executable Actions**, busque `Set Play Fab Settings` y selecciónelo para agregarlo a su Blueprint. En `Set Play Fab Settings`, si **Game Title id** está en blanco, establézcalo en el **Title ID** de su juego.

* Seleccione el pin de salida de `Set Play Fab Settings` y arrástrelo a una ubicación libre. En el cuadro de diálogo **Executable Actions**, busque `Login with Custom ID` y selecciónelo para agregarlo a su Blueprint.

* Seleccione el pin **Request** de `Login with Custom ID` y arrástrelo a una ubicación vacía. En **Actions providing a(n) Client Login With Custom ID Request Structure**, seleccione `Make ClientLoginWithCustomIDRequest`.

* En `Make ClientLoginWithCustomIDRequest`:

  * Seleccione **Create Account**.
  * Establezca el **Custom Id** en GettingStartedGuide.

* En `Login with Custom ID`, seleccione el pin **On Success** y arrástrelo a una ubicación vacía. En **Actions providing a(n) Delegate**, busque `Add Custom Event` y selecciónelo para agregarlo a su Blueprint.
  * Asígnele el nombre `OnLogin`.

* Seleccione el pin **On Failure** y arrástrelo a una ubicación vacía. En **Actions providing a(n) Delegate**, busque `Add Custom Event` y selecciónelo para agregarlo a su Blueprint.
  * Asígnele el nombre `OnFailure`.

* Seleccione el pin de salida de `OnLogin` y arrástrelo a una ubicación vacía. En el cuadro de diálogo **Executable Actions**, busque `Print String` y selecciónelo para agregarlo al Blueprint.
  * En `Print String`, establezca el valor de **In String** en "Congratulations, you made your first successful PlayFab API call using Blueprint!".

* Seleccione el pin de salida de `OnFailure` y arrástrelo a una ubicación vacía. En el cuadro de diálogo **Executable Actions**, busque `Print String` y selecciónelo para agregarlo al Blueprint.

* Seleccione el pin **Error** de `OnFailure` y arrástrelo a una ubicación vacía. En el cuadro de diálogo **Actions providing a(n) string**, busque **Break PlayFabError** y selecciónelo para agregarlo al Blueprint. En el cuadro de diálogo **Actions taking a(n) PlayFab error structure**, busque **Break PlayFabError** y selecciónelo para agregarlo al Blueprint.

* Conecte el pin **Error Message** de `Break PlayFabError` al pin **In String** de la acción `Print String` de error.

Cuando termine, su Blueprint debería tener un aspecto similar a este diseño:

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/blueprint-structure.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=28dcddff9746a46c9f2719b2439d4b84" alt="Interfaz de usuario del Blueprint abierto" width="1958" height="1502" data-path="images/playfab/sdks/unreal/blueprint-structure.png" />

**Guarde** el Blueprint y cierre la ventana del editor de Blueprint.

### Ejecutar una llamada a PlayFab con Blueprint

1. En la barra de herramientas, seleccione el botón **Play**.

2. Cuando se ejecuta el Blueprint, se muestra la siguiente salida en la ventana Viewport.

   <img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/uemk-log-success.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=190c17886fa54873449808f5bbab7fc3" alt="Registro de éxito del Blueprint" width="489" height="221" data-path="images/playfab/sdks/unreal/uemk-log-success.png" />

¡Enhorabuena, ha realizado su primera llamada correcta a la API de PlayFab mediante Blueprint!

## Más recursos

* Documentación de Unreal Engine sobre [Blueprints Visual Scripting](https://docs.unrealengine.com/en-US/Engine/Blueprints/index.html).
* [Documentación de Unreal Engine](https://docs.unrealengine.com/).


## Related topics

- [Motores de juego compatibles con PlayFab](/es/services/playfab/sdks/game-engines/index.md)
- [Notas de la versión de PlayFab 2018](/es/services/playfab/release-notes/2018.md)
- [Inicio rápido de PlayFab Online Subsystem (OSS)](/es/services/playfab/multiplayer/networking/party-unreal-engine-oss-quickstart.md)
- [Uso del GDK con Unreal Engine](/es/build/gdk-and-engines/unreal/unreal.md)
- [Integración del complemento de PlayFab del Marketplace de Unreal Engine](/es/services/playfab/multiplayer/networking/party-unreal-engine-oss-playfab-plugin-integration.md)
