Exemplo n.º 1
0
        void ProcessRawMessage(string rawMessage)
        {
            switch (rawMessage[0])
            {
            case (char)GameServer.MessageType.GameUpdateLoop:
                rawMessage = rawMessage.Remove(0, 1);
                var loopMessage = JsonUtility.FromJson <GameLoopMessage>(rawMessage);
                NetworkingInfoManager.Server_AddClientMessageToLoop(loopMessage);
                NetworkPlayerManager.instance.UpdatePlayerPositions(id);
                break;

            case (char)GameServer.MessageType.RegisterPlayer:
                rawMessage = rawMessage.Remove(0, 1);
                var rpMsg          = JsonUtility.FromJson <RegisterPlayerMessage>(rawMessage);
                var existingPlayer = NetworkingInfoManager.config.players.SingleOrDefault(p => p.clientId == id && p.localId == rpMsg.localId);
                if (existingPlayer != null)
                {
                    NetworkingInfoManager.config.players.Remove(existingPlayer);
                }

                int nid   = NetworkingInfoManager.config.playerCount;
                var pinfo = rpMsg.GetPlayerInfo(id, nid);
                NetworkingInfoManager.config.players.Add(pinfo);
                GameServer.instance.SendMessageToAllClients(GameServer.MessageType.ServerConfig, JsonUtility.ToJson(NetworkingInfoManager.config));
                GameServer.instance.SendMessageToClient(id, GameServer.MessageType.AcceptPlayer, JsonUtility.ToJson(pinfo));

                break;

            case (char)GameServer.MessageType.Message:
                break;
            }
        }
Exemplo n.º 2
0
 private void RegisterPlayers()
 {
     foreach (var player in PlayerConfigurationManager.Instance.Players)
     {
         NetworkingInfoManager.Client_RegisterPlayer(player);
     }
 }
Exemplo n.º 3
0
    private void FixedUpdate()
    {
        if (!isConnected)
        {
            return;
        }

        fixedUpdateCounter++;

        if (fixedUpdateCounter < NetworkingInfoManager.fixedUpdateCounterLimit)
        {
            return;
        }

        fixedUpdateCounter = 0;
        NetworkingInfoManager.Client_AddLocalGameLoop();
        tcp.SendMessage(GameServer.MessageType.GameUpdateLoop, JsonUtility.ToJson(NetworkingInfoManager.currentLocalClientGameLoop));
    }
Exemplo n.º 4
0
    private void FixedUpdate()
    {
        if (!serverIsRunning)
        {
            return;
        }

        if (clients.Count < 1)
        {
            return;
        }

        fixedUpdateCounter++;

        if (fixedUpdateCounter < NetworkingInfoManager.fixedUpdateCounterLimit)
        {
            return;
        }

        fixedUpdateCounter = 0;
        NetworkingInfoManager.AddCurrentLocalGameLoopState(ref NetworkingInfoManager.currentServerGameLoop);
        SendMessageToAllClients(NetworkingInfoManager.currentServerGameLoop);
    }