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
Nota
Questo argomento fornisce informazioni su una versione precedente del Amazon GameLift Servers plug-in per Unity. La versione 1.0.0 (rilasciata nel 2021) utilizza l'SDK del server per Amazon GameLift Servers 4.x o versioni precedenti. Per la documentazione sull'ultima versione del plug-in, che utilizza il server SDK 5.x e supporta Anywhere, consulta. Amazon GameLift Servers Amazon GameLift Serversplugin per Unity (server SDK 5.x)
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.
Prerequisiti
Prima di integrare il server di gioco, completa le seguenti attività:
Configura un nuovo processo del server
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.
-
Inizializza l'SDK del server chiamando.
InitSDK()
-
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. -
Amazon GameLift Serversaggiorna lo stato del processo del server su
ACTIVE
. -
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
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.
-
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. -
Per attivare una sessione di gioco, chiama.
ActivateGameSession()
Per ulteriori informazioni sull'SDK, consultaSDK del server C# per Amazon GameLift Servers 4.x -- Azioni.
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
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.
-
Imposta una funzione denominata
onProcessTerminate
per ricevere richieste Amazon GameLift Servers e chiamate.ProcessEnding()
-
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
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, consultaImplementa una build di server personalizzata per Amazon GameLift Servers hosting.