

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Integrazione Amazon GameLift Servers con un progetto di server di gioco Unity
<a name="integration-unity-server-sdk4"></a>

**Nota**  
Questo argomento fornisce informazioni su una versione precedente del Amazon GameLift Servers plug-in per Unity. La versione 1.x utilizza l'SDK del server per Amazon GameLift Servers 4.x o versioni precedenti. Per la documentazione sulla versione più recente del plug-in, che utilizza il server SDK 5.x e supporta funzionalità più recenti come Amazon GameLift Servers Anywhere e l'hosting gestito di container, consulta. [Amazon GameLift Serversplugin per Unity (server SDK 5.x)](unity-plug-in.md)

Questo argomento ti aiuta a preparare il tuo server di gioco personalizzato su cui ospitare. Amazon GameLift Servers Il server di gioco deve essere in grado Amazon GameLift Servers di notificare il suo stato, di avviare e interrompere le sessioni di gioco quando richiesto e di eseguire altre attività. Per ulteriori informazioni, consulta [Aggiungi Amazon GameLift Servers al tuo server di gioco con l'SDK del server](gamelift-sdk-server-api.md).

## Prerequisiti
<a name="integration-unity-server-sdk4-prereq"></a>

Prima di integrare il server di gioco, completa le seguenti attività: 
+ [Configurare un ruolo di servizio IAM per Amazon GameLift Servers](setting-up-role.md)
+ [Installa e configura il plugin](unity-plug-in-sdk4.md#unity-plug-in-sdk4-install)

## Configura un nuovo processo del server
<a name="integration-unity-server-sdk4-server-process"></a>

**Nota**  
Questo argomento si riferisce al Amazon GameLift Servers plug-in per Unity versione 1.0.0, che utilizza il server SDK 4.x o precedente.

Imposta la comunicazione con Amazon GameLift Servers e segnala che il processo del server è pronto per ospitare una sessione di gioco. 

1. Inizializza l'SDK del server chiamando. `InitSDK()` 

1. Per preparare il server ad accettare una sessione di gioco, chiama `ProcessReady()` indicando la porta di connessione e i dettagli sulla posizione della sessione di gioco. Includi i nomi delle funzioni di callback richiamate dal Amazon GameLift Servers servizio, ad esempio,`OnGameSession()`,`OnGameSessionUpdate()`. `OnProcessTerminate()` `OnHealthCheck()` Amazon GameLift Serverspotrebbero essere necessari alcuni minuti per fornire una richiamata.

1. Amazon GameLift Serversaggiorna lo stato del processo del server su`ACTIVE`.

1. Amazon GameLift Serverschiama `onHealthCheck` periodicamente.

Il seguente esempio di codice mostra come configurare un semplice processo server conAmazon 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;
}
```

## Inizia una sessione di gioco
<a name="integration-unity-server-sdk4-start-game-session"></a>

**Nota**  
Questo argomento si riferisce al Amazon GameLift Servers plug-in per Unity versione 1.0.0, che utilizza il server SDK 4.x o precedente.

Una volta completata l'inizializzazione del gioco, puoi iniziare una sessione di gioco.

1. Implementa la funzione di callback. `onStartGameSession` Amazon GameLift Serversrichiama questo metodo per avviare una nuova sessione di gioco sul processo server e ricevere le connessioni dei giocatori.

1. Per attivare una sessione di gioco, chiama. `ActivateGameSession()` Per ulteriori informazioni sull'SDK, consulta[SDK del server C\$1 per Amazon GameLift Servers 4.x -- Azioni](integration-server-sdk-csharp-ref-actions.md).

Il seguente esempio di codice illustra come avviare una sessione di gioco con. 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();
}
```

## Termina una sessione di gioco
<a name="integration-unity-server-sdk4-end-game-session"></a>

**Nota**  
Questo argomento si riferisce al Amazon GameLift Servers plug-in per Unity versione 1.0.0, che utilizza il server SDK 4.x o precedente.

Notifica Amazon GameLift Servers quando una sessione di gioco sta per terminare. Come best practice, chiudi i processi del server al termine delle sessioni di gioco per riciclare e aggiornare le risorse di hosting. 

1. Imposta una funzione denominata `onProcessTerminate` per ricevere richieste Amazon GameLift Servers e chiamate. `ProcessEnding()` 

1. Lo stato del processo cambia in`TERMINATED`.

L'esempio seguente descrive come terminare un processo per una sessione di gioco.

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

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

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

## Crea server, costruisci e carica su Amazon GameLift Servers
<a name="integration-unity-server-sdk4-gamelift-connection"></a>

**Nota**  
Questo argomento si riferisce al Amazon GameLift Servers plug-in per Unity versione 1.0.0, che utilizza il server SDK 4.x o precedente.

Dopo aver integrato il server di gioco conAmazon GameLift Servers, carica i file di build su una flotta in modo che Amazon GameLift Servers possa utilizzarli per l'hosting dei giochi. Per ulteriori informazioni su come caricare il server suAmazon GameLift Servers, consulta[Crea un server di gioco costruito per Amazon GameLift Servers](gamelift-build-cli-uploading.md).