Version: 5.4
Objetos de Escena
Multiplayer Lobby (Lobby Multi-jugador)

Convirtiendo un juego de un solo jugador a multiplayer

Este documento describe pasos para convertir un juego de un solo jugador a un juego multi-jugador utilizando el nuevo sistema en red. El proceso descrito aquí es una versión simplificada de alto nivel del proceso actual para un juego real y no funciona exactamente así para cada juego, pero proporciona una receta básica para el proceso.

Configuración del NetworkManager

  • Agregue un nuevo game object a la escena y re-nómbrelo a “NetworkManager”.
  • Agregue un componente NetworkManager al nuevo game object.
  • Agregue el componente NetworkManagerHud al game object. Este proporcionará el UI predeterminado para manejar el estado del juego en red.

Ver Utilizando el NetworkManager.

Configuración del Prefab Jugador

  • Encuentre el prefab para el objeto jugador en el juego, o cree un prefab del objeto jugador.
  • Agregue un componente NetworkIdentity al prefab jugador.
  • Marque la caja LocalPlayerAuthority en el NetworkIdentity.
  • Configure el playerPrefab en la sección “Spawn Info” en el NetworkManager al prefab jugador
  • Quite la instancia del objeto jugador de la escena si existe en la escena

Ver Objetos Player (Jugador).

Movimiento del jugador

  • Agregue un componente NetworkTransform al prefab jugador
  • Actualice los scripts de input y de control para respetar isLocalPlayer
  • Arregle la cámara para que utilice el jugador generado e isLocalPlayer

Por ejemplo, este script solamente procesa input para el jugador local:

using UnityEngine;
using UnityEngine.Networking;

public class Controls : NetworkBehaviour
{
    void Update()
    {
        if (!isLocalPlayer)
        {
            // exit from update if this is not the local player
            return;
        }

        // handle player input for movement
    }
}

Estado de juego básico del jugador

  • Cree scripts que contengan datos importantes en NetworkBehaviours en vez de MonoBehaviours
  • Cree variables miembro importantes a SyncVars

Ver Sincronización de estado.

Acciones en red

  • Cree scripts que realicen acciones importantes en NetworkBehaviours en vez de MonoBehaviours
  • Actualice funciones que realicen acciones importantes de jugador en Commands (comandos)

Ver acciones en Red.

Objetos No-Jugador

Arregle prefabs no-jugador como lo son enemigos:

  • Agregue el componente NetworkIdentify
  • Agregue el componente NetworkTransform
  • Registre prefabs generables con NetworkManager
  • Actualice scripts con el estado de juego y acciones

Generadores (spawners)

  • Potencialmente cambie scripts generadores a que sean NetworkBehaviours
  • Modifique a los generadores que solo corran en el servidor, utilice la propiedad isServer o la función OnStartServer()
  • Llame NetworkServer.Spawn() para los objetos creados

Posiciones de spawn (generación) para los jugadores

  • Agregue un nuevo game object y colóquelo en la posición inicial del jugador
  • Agregue el componente NetworkStartPosition al nuevo game object

Lobby

  • Cree una escena Lobby
  • Agregue un nuevo game object a la escena y re-nómbrela a “NetworkLobbyManager”.
  • Agregue el componente NetworkLobbyManager al nuevo game object.
  • configure el manager (administrador)
    • Escenas
    • Prefabs
    • Generadores
Objetos de Escena
Multiplayer Lobby (Lobby Multi-jugador)