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; } }
private void RegisterPlayers() { foreach (var player in PlayerConfigurationManager.Instance.Players) { NetworkingInfoManager.Client_RegisterPlayer(player); } }
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)); }
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); }