

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Integrar o Amazon GameLift Servers com um projeto de servidor de jogo do Unity
<a name="integration-unity-server-sdk4"></a>

**nota**  
Este tópico fornece informações para uma versão anterior do plug-in do Amazon GameLift Servers para Unity. A versão 1.x usa o SDK do servidor para Amazon GameLift Servers 4.x ou anterior. Para obter a documentação sobre a versão mais recente do plug-in, que usa o SDK 5.x do servidor e é compatível com recursos mais recentes, como Amazon GameLift Servers Anywhere e hospedagem de contêineres gerenciados, consulte [Amazon GameLift Serversplugin para Unity (servidor SDK 5.x)](unity-plug-in.md).

Este tópico ajuda você a preparar seu servidor de jogos personalizado para hospedagem no Amazon GameLift Servers. O servidor de jogos deve poder notificar o Amazon GameLift Servers sobre seu status, iniciar e interromper sessões de jogos quando solicitado e executar outras tarefas. Para obter mais informações, consulte [Integre o Amazon GameLift Servers ao seu servidor de jogos com o SDK do servidor.](gamelift-sdk-server-api.md).

## Pré-requisitos
<a name="integration-unity-server-sdk4-prereq"></a>

Antes de integrar o servidor de jogos, execute as tarefas a seguir: 
+ [Configurar um perfil de serviço do IAM para o Amazon GameLift Servers](setting-up-role.md)
+ [Instalar e configurar o plug-in](unity-plug-in-sdk4.md#unity-plug-in-sdk4-install)

## Configure um novo processo de servidor
<a name="integration-unity-server-sdk4-server-process"></a>

**nota**  
Este tópico se refere ao plug-in do Amazon GameLift Servers para Unity versão 1.0.0, que usa o SDK 4.x ou anterior do servidor.

Configure a comunicação com o Amazon GameLift Servers e informe que o processo do servidor está pronto para hospedar uma sessão de jogo. 

1. Inicialize o SDK do servidor ao chamar `InitSDK()`. 

1. Para preparar o servidor para aceitar uma sessão de jogo, chame `ProcessReady()` com a porta de conexão e os detalhes da localização da sessão de jogo. Inclua os nomes das funções de retorno de chamada que o serviço do Amazon GameLift Servers invoca, como `OnGameSession()`, `OnGameSessionUpdate()`, `OnProcessTerminate()`, `OnHealthCheck()`. O Amazon GameLift Servers pode levar alguns minutos para fornecer um retorno de chamada.

1. O Amazon GameLift Servers atualiza o status do processo do servidor para `ACTIVE`.

1. O Amazon GameLift Servers chama o `onHealthCheck` periodicamente.

O exemplo de código a seguir mostra como configurar um processo de servidor simples com o Amazon GameLift Servers. 

```
//initSDK
var initSDKOutcome = GameLiftServerAPI.InitSDK();
           
//processReady
// Set parameters and call ProcessReady
var processParams = new ProcessParameters(
    this.OnGameSession,
    this.OnProcessTerminate,
    this.OnHealthCheck,
    this.OnGameSessionUpdate,
    port,
    // Examples of log and error files written by the game server
    new LogParameters(new List<string>()          
        {
            "C:\\game\\logs",
            "C:\\game\\error"
        })
);
               
var processReadyOutcome = GameLiftServerAPI.ProcessReady(processParams);
               
// Implement callback functions
void OnGameSession(GameSession gameSession)
{
    // game-specific tasks when starting a new game session, such as loading map
    // When ready to receive players
    var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession();
}
               
void OnProcessTerminate()
{
    // game-specific tasks required to gracefully shut down a game session, 
    // such as notifying players, preserving game state data, and other cleanup
    var ProcessEndingOutcome = GameLiftServerAPI.ProcessEnding();
}
               
bool OnHealthCheck()
{
    bool isHealthy;
    // complete health evaluation within 60 seconds and set health
    return isHealthy;
}
```

## Iniciar uma sessão de jogo
<a name="integration-unity-server-sdk4-start-game-session"></a>

**nota**  
Este tópico se refere ao plug-in do Amazon GameLift Servers para Unity versão 1.0.0, que usa o SDK 4.x ou anterior do servidor.

Depois que a inicialização do jogo estiver concluída, você poderá iniciar uma sessão de jogo.

1. Implemente a função de retorno `onStartGameSession`. O Amazon GameLift Servers invoca esse método para iniciar uma nova sessão de jogo no processo do servidor e receber conexões de jogadores.

1. Para ativar uma sessão de jogo, chame `ActivateGameSession()`. Para obter mais informações sobre o SDK, consulte [SDK do servidor C\# para Amazon GameLift Servers 4x – Ações](integration-server-sdk-csharp-ref-actions.md).

O exemplo de código a seguir ilustra como começar uma sessão de jogo com o Amazon GameLift Servers. 

```
void OnStartGameSession(GameSession gameSession)
{
    // game-specific tasks when starting a new game session, such as loading map   
    ...
    // When ready to receive players   
    var activateGameSessionOutcome = GameLiftServerAPI.ActivateGameSession();
}
```

## Encerrar uma sessão de jogo
<a name="integration-unity-server-sdk4-end-game-session"></a>

**nota**  
Este tópico se refere ao plug-in do Amazon GameLift Servers para Unity versão 1.0.0, que usa o SDK 4.x ou anterior do servidor.

Notifique o Amazon GameLift Servers quando uma sessão de jogo estiver terminando. Como melhor prática, desligue os processos do servidor após a conclusão das sessões de jogo para reciclar e atualizar os recursos de hospedagem. 

1. Configure uma função chamada `onProcessTerminate` para receber solicitações do Amazon GameLift Servers e chame `ProcessEnding()`. 

1. O status do processo muda para `TERMINATED`.

O exemplo a seguir descreve como finalizar um processo para uma sessão de jogo.

```
var processEndingOutcome = GameLiftServerAPI.ProcessEnding();

if (processReadyOutcome.Success)
   Environment.Exit(0);

// otherwise, exit with error code
Environment.Exit(errorCode);
```

## Crie a compilação do servidor e faça o upload do servidor para Amazon GameLift Servers
<a name="integration-unity-server-sdk4-gamelift-connection"></a>

**nota**  
Este tópico se refere ao plug-in do Amazon GameLift Servers para Unity versão 1.0.0, que usa o SDK 4.x ou anterior do servidor.

Depois de integrar seu servidor de jogos com o Amazon GameLift Servers, faça o upload dos arquivos de compilação para uma frota para que o Amazon GameLift Servers possa implantá-los para hospedagem de jogos. Para obter mais informações sobre como fazer o upload de seu servidor para o Amazon GameLift Servers, consulte [Criar uma compilação personalizada do servidor de jogos para o Amazon GameLift Servers](gamelift-build-cli-uploading.md).