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

# Início rápido da Unreal Engine

> Instale o plug-in do PlayFab do Unreal Marketplace e faça sua primeira chamada à API do PlayFab a partir de um projeto da Unreal Engine usando C++ ou Blueprints.

# Início rápido: biblioteca de cliente do PlayFab para Unreal Engine

Comece a usar o plug-in do PlayFab para a Unreal Engine. Siga este início rápido para instalar o plug-in do PlayFab para Unreal Engine e criar aplicativos de exemplo que usam a biblioteca de cliente C++ e a interface Blueprint.

Você pode usar o plug-in do PlayFab para a Unreal Engine para gerenciar o LiveOps do seu título e executar operações de administração, cliente e servidor, como:

* Autenticação de jogadores.
* Gerenciamento de itens virtuais e moeda.
* Criação de recursos sociais, como listas de amigos.

  [Documentação de referência da API](/pt-BR/services/playfab/api-references) | [Código-fonte da biblioteca](https://github.com/PlayFab/UnrealMarketplacePlugin) | [Unreal Marketplace](https://www.unrealengine.com/marketplace/playfab-sdk)

## Pré-requisitos

* Uma [conta de desenvolvedor do PlayFab](https://developer.playfab.com).
* Uma instalação do [Visual Studio](https://visualstudio.microsoft.com/downloads/) configurada para a Unreal Engine. Para obter informações sobre como configurar o Visual Studio, consulte [Setting Up Visual Studio for Unreal Engine](https://docs.unrealengine.com/en-US/Programming/Development/VisualStudioSetup/index.html).
* Uma instalação da [Unreal Engine](https://www.unrealengine.com/download). Para obter informações sobre como instalar a Unreal Engine, consulte o [guia de instalação da Unreal Engine](https://docs.unrealengine.com/4.27/en-US/Basics/Projects/Browser/).
* Uma instalação do plug-in do PlayFab para Unreal. Você pode instalar o plug-in do Unreal no [marketplace da Unreal Engine](https://www.unrealengine.com/marketplace/playfab-sdk).

## Criar um projeto do Unreal

Na Unreal Engine, crie um novo projeto do Unreal. Para obter instruções detalhadas, siga o guia [Create a New Project](https://docs.unrealengine.com/4.27/en-US/Basics/Projects/Browser/).

1. Em **Project Category**, selecione **Games**.
2. Em **Select Template**, selecione **Blank**.
3. Em **Project Settings**, selecione **C++** ou **Blueprint**.
4. Escolha **No Starter Content**.
5. Escolha um nome para o projeto, como **MyProject**.

## Habilitar o plug-in do PlayFab no seu projeto do Unreal

Para habilitar o plug-in do PlayFab:

1. No menu **Settings**, em **Game Specific Settings**, selecione **Plugins**.
2. Habilite o plug-in **PlayFab** e reinicie a Unreal Engine, se necessário.

Se "PlayFab" não aparecer em **Plugins**, verifique se o plug-in foi instalado a partir do Unreal Marketplace. Reinicie o Unreal Editor. Em seguida, abra **Plugins** novamente e pesquise "PlayFab".

### Adicionar o PlayFab como dependência de módulo em C++

No Visual Studio, adicione o PlayFab como dependência de módulo no seu projeto C++:

1. No menu **Exibir**, abra o **Gerenciador de Soluções**, que exibe os arquivos do projeto C++.

2. No Gerenciador de Soluções, navegue até **Solution\Games\YourProjectName\Source** e abra **YourProjectName.Build.cs**.

3. Adicione a seguinte linha:

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

4. Salve as alterações.

## Gerar os arquivos de projeto do Visual Studio necessários

Para atualizar e gerar os arquivos de projeto do Visual Studio necessários para usar o plug-in do PlayFab:

1. Abra uma janela do explorador de arquivos e navegue até a pasta em que os arquivos do projeto estão localizados.
2. Na pasta raiz do projeto, clique com o botão direito do mouse no arquivo YourProjectName.uproject.
3. No menu de contexto, selecione **Generate Visual Studio project files**.

## Chamando o PlayFab com C++

As etapas a seguir orientam você na criação de um título que faz logon no PlayFab usando um ID personalizado. Para obter informações sobre como fazer logon a partir de um projeto Blueprints, consulte "Chamando o PlayFab a partir de Blueprints do Unreal" mais adiante neste artigo.

### Criar um novo Actor

Para criar um novo Actor:

1. No menu **File**, selecione **New C++ Class**.
2. Em **Parent Class**, selecione **Actor**.
3. Nomeie seu Actor como **LoginActor**. Depois que você cria o Actor, a Unreal Engine abre automaticamente seu ambiente de desenvolvimento C++ e carrega LoginActor.cpp e LoginActor.h.

<Info>
  Para os fins deste início rápido, você precisa nomear o Actor como **LoginActor**. Se você der outro nome ao Actor, precisará atualizar o código de exemplo fornecido neste início rápido para corresponder ao novo nome.
</Info>

4. Arraste e solte seu novo Actor **LoginActor** do Content Browser no painel Viewport. Ele agora aparece no painel "World Outliner".
   Se você não vir seu **LoginActor**, selecione o ícone **Show or hide the source panel**. Em seguida, selecione o nome do seu projeto em C++ classes.

   <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 showing the source panel icon." 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 in World" width="1062" height="524" data-path="images/playfab/sdks/unreal/login-actor-world.png" />

### Adicionar chamadas à API do PlayFab ao seu LoginActor em C++

Neste início rápido, você usa [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid) para fazer o logon. Embora `LoginWithCustomId` seja fácil de usar para começar, recomendamos passar para um método de autenticação de jogadores mais seguro no lançamento do seu jogo. Consulte [Noções básicas e práticas recomendadas de logon](/pt-BR/services/playfab/identity/player-identity/login/login-basics-best-practices) para obter informações sobre como implementar uma funcionalidade de logon robusta.

A chamada a `LoginWithCustomID` é feita no seu **LoginActor**. Para adicionar o código específico do PlayFab ao seu **LoginActor**:

1. Substitua o conteúdo de LoginActor.h pelo código mostrado:

```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. Substitua o conteúdo de LoginActor.cpp pelo código a seguir.

```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>
  O IntelliSense do Visual Studio indicará que não consegue localizar os arquivos de inclusão e o namespace PlayFab. Você pode ignorar esses avisos com segurança. Quando você executar o projeto, ele será compilado e executado corretamente.
</Tip>

### Concluir e executar com C++

Agora você está pronto para testar uma chamada ao PlayFab a partir da Unreal Engine em C++. Os resultados da chamada de teste são exibidos no **Output Log** da Unreal Engine.

Na Unreal Engine:

1. Exiba o Output Log: no menu **Windows**, selecione **Developer Tools** e habilite **Output Log**.
2. Na barra de ferramentas, selecione **Compile** e aguarde a Unreal Engine terminar a compilação. Enquanto o código está sendo compilado, o Unreal exibe "Compiling C++ Code".
3. Selecione **Play**. Quando o código for executado, o Unreal exibirá o seguinte na janela **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="Output Log successful call" width="1477" height="311" data-path="images/playfab/sdks/unreal/call-works.png" />

## Chamando o PlayFab a partir de Blueprints do Unreal

Esta seção orienta você na criação de uma estrutura de Blueprint que usa a API do PlayFab para chamar [LoginWithCustomID](https://learn.microsoft.com/en-us/rest/api/playfab/client/authentication/login-with-custom-id?view=playfab-rest\&preserve-view=true). Embora `LoginWithCustomId` seja fácil de usar para começar, recomendamos passar para um método de autenticação de jogadores mais seguro no lançamento do seu jogo. Consulte [Noções básicas e práticas recomendadas de logon](/pt-BR/services/playfab/identity/player-identity/login/login-basics-best-practices) para obter informações sobre como implementar uma funcionalidade de logon robusta.

<Tip>
  Se você começar com um projeto Blueprint, precisará convertê-lo em um projeto C++ para que as Blueprint Actions do PlayFab funcionem.
</Tip>

### Criar uma estrutura de Blueprint

Na Unreal Engine, na barra de ferramentas, selecione **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="example open blueprint level image" width="439" height="439" data-path="images/playfab/sdks/unreal/uemk-open-lv-bp.jpg" />

O EventGraph é aberto e vem preenchido com duas Actions: `Event BeginPlay` e `Event Tick`.

Actions usadas neste início rápido:

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

Crie seu Blueprint da seguinte maneira:

* Selecione o pino de saída em `Event BeginPlay` e arraste-o para um local livre no **Event Graph**. Na caixa de diálogo **Executable Actions**, pesquise `Set Play Fab Settings` e selecione-a para adicioná-la ao Blueprint. Em `Set Play Fab Settings`, se **Game Title id** estiver em branco, defina-o como o **Title ID** do seu jogo.

* Selecione o pino de saída em `Set Play Fab Settings` e arraste-o para um local livre. Na caixa de diálogo **Executable Actions**, pesquise `Login with Custom ID` e selecione-a para adicioná-la ao Blueprint.

* Selecione o pino **Request** em `Login with Custom ID` e arraste-o para um local vazio. Em **Actions providing a(n) Client Login With Custom ID Request Structure**, selecione `Make ClientLoginWithCustomIDRequest`.

* Em `Make ClientLoginWithCustomIDRequest`:

  * Selecione **Create Account**.
  * Defina **Custom Id** como GettingStartedGuide.

* Em `Login with Custom ID`, selecione o pino **On Success** e arraste-o para um local vazio. Em **Actions providing a(n) Delegate**, pesquise `Add Custom Event` e selecione-o para adicioná-lo ao Blueprint.
  * Nomeie-o como `OnLogin`.

* Selecione o pino **On Failure** e arraste-o para um local vazio. Em **Actions providing a(n) Delegate**, pesquise `Add Custom Event` e selecione-o para adicioná-lo ao Blueprint.
  * Nomeie-o como `OnFailure`.

* Selecione o pino de saída em `OnLogin` e arraste-o para um local vazio. Na caixa de diálogo **Executable Actions**, pesquise `Print String` e selecione-a para adicioná-la ao Blueprint.
  * Em `Print String`, defina o valor de **In String** como "Congratulations, you made your first successful PlayFab API call using Blueprint!".

* Selecione o pino de saída de `OnFailure` e arraste-o para um local vazio. Na caixa de diálogo **Executable Actions**, pesquise `Print String` e selecione-a para adicioná-la ao Blueprint.

* Selecione o pino **Error** em `OnFailure` e arraste-o para um local vazio. Na caixa de diálogo **Actions providing a(n) string**, pesquise **Break PlayFabError** e selecione-a para adicioná-la ao Blueprint. Na caixa de diálogo **Actions taking a(n) PlayFab error structure**, pesquise **Break PlayFabError** e selecione-a para adicioná-la ao Blueprint.

* Conecte o pino **Error Message** de `Break PlayFabError` ao pino **In String** da Action `Print String` de falha.

Quando terminar, seu Blueprint deverá ficar semelhante a este design:

<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="Opened Blueprint UI" width="1958" height="1502" data-path="images/playfab/sdks/unreal/blueprint-structure.png" />

**Salve** o Blueprint e feche a janela do Blueprint Editor.

### Executar uma chamada ao PlayFab com Blueprint

1. Na barra de ferramentas, selecione o botão **Play**.

2. Quando o Blueprint for executado, a seguinte saída será mostrada na janela 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="Blueprint log success" width="489" height="221" data-path="images/playfab/sdks/unreal/uemk-log-success.png" />

Parabéns, você fez sua primeira chamada bem-sucedida à API do PlayFab usando Blueprint!

## Mais recursos

* Documentação da Unreal Engine sobre [Blueprints Visual Scripting](https://docs.unrealengine.com/en-US/Engine/Blueprints/index.html).
* [Documentação da Unreal Engine](https://docs.unrealengine.com/).


## Related topics

- [Motores de jogo compatíveis com o PlayFab](/pt-BR/services/playfab/sdks/game-engines/index.md)
- [SDK da Unreal Engine (C++, Blueprints)](/pt-BR/services/playfab/sdks/unreal/index.md)
- [Integrar o plug-in do PlayFab do Unreal Engine Marketplace](/pt-BR/services/playfab/multiplayer/networking/party-unreal-engine-oss-playfab-plugin-integration.md)
- [Início rápido de matchmaking](/pt-BR/services/playfab/multiplayer/matchmaking/quickstart.md)
- [Início rápido da vinculação de contas](/pt-BR/services/playfab/identity/player-identity/login/quickstart.md)
