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

# Integrando o PlayFab GSDK ao Unity

> Integre o PlayFab Game Server SDK (GSDK) a um projeto de servidor dedicado do Unity para hospedar builds no PlayFab Multiplayer Servers com a biblioteca UnityGsdk.

A plataforma Multiplayer Servers fornece uma biblioteca GSDK que você pode integrar ao seu servidor de jogo do [Unity](https://unity.com/). A biblioteca é de código aberto e pode ser encontrada no [repositório do GSDK no GitHub](https://github.com/PlayFab/gsdk/tree/master/UnityGsdk).

## Instalação

Você pode copiar a pasta [Assets/PlayFabSdk](https://github.com/PlayFab/gsdk/tree/master/UnityGsdk/Assets/PlayFabSdk) para o seu projeto do Unity. Depois disso, você precisa habilitar a diretiva de script `ENABLE_PLAYFABSERVER_API` nas configurações de build do Unity ([exemplo](https://user-images.githubusercontent.com/8256138/81462605-a6d7ac80-9168-11ea-9748-110ed01095c2.png)).
Como alternativa, você pode usar o [arquivo de pacote do Unity](https://github.com/PlayFab/gsdk/blob/main/UnityGsdk/MpsGsdk.unitypackage) fornecido.
Você pode encontrar um código de exemplo no projeto [MultiplayerServerSample](https://github.com/PlayFab/gsdk/tree/main/UnityGsdk/Assets/PlayFabSdk).

## Uso

No mínimo, você precisa implementar o método `PlayFabMultiplayerAgentAPI.Start()` e iniciar uma [corrotina](https://docs.unity3d.com/Manual/Coroutines.html) para o método `PlayFabMultiplayerAgentAPI.ReadyForPlayers()`, como no código abaixo

```csharp theme={null}
//...
StartCoroutine(ReadyForPlayers());
//...

private IEnumerator ReadyForPlayers()
{
    yield return new WaitForSeconds(.5f);
    PlayFabMultiplayerAgentAPI.ReadyForPlayers();
}
```

Você também vai querer se registrar para saber quando o servidor de jogo passa para Active usando `PlayFabMultiplayerAgentAPI.OnServerActiveCallback`, como no exemplo abaixo:

```csharp theme={null}
PlayFabMultiplayerAgentAPI.OnServerActiveCallback += OnServerActive;
// ...
private void OnServerActive()
{
    Debug.Log("Server Started From Agent Activation");
    // players can now connect to the server
}
```

<Note>
  Para obter mais informações sobre os estados do servidor de jogo, confira a seção Noções básicas de um servidor de jogo do PlayFab [aqui](/pt-BR/services/playfab/multiplayer/servers/basics-of-a-playfab-game-server)
</Note>

Além disso, você pode implementar os seguintes retornos de chamada no seu servidor de jogo:

* `PlayFabMultiplayerAgentAPI.OnMaintenanceCallback`: disparado quando o Azure precisa realizar a manutenção na VM
* `PlayFabMultiplayerAgentAPI.OnShutDownCallback`: disparado quando uma notificação de encerramento é recebida
* `PlayFabMultiplayerAgentAPI.OnAgentErrorCallback`: disparado se houver algum erro na comunicação entre o servidor de jogo e o PlayFab VM Agent

<Note>
  Para ver mais exemplos do GSDK, você pode dar uma olhada no nosso repositório de exemplos do MPS [aqui](https://github.com/PlayFab/MpsSamples)
</Note>


## Related topics

- [Noções básicas de um servidor de jogo do PlayFab](/pt-BR/services/playfab/multiplayer/servers/basics-of-a-playfab-game-server.md)
- [Integrar servidores de jogo ao PlayFab GSDK](/pt-BR/services/playfab/multiplayer/servers/integrating-game-servers-with-gsdk.md)
- [Redes do PlayFab Party e fluxos de descoberta de rede](/pt-BR/services/playfab/multiplayer/networking/concepts-discovery.md)
- [Visão geral do plug-in PlayFab Unreal GSDK](/pt-BR/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/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)
