private void OnServerReceiveClientInfo(NetworkMessage Msg) { if (Msg.conn.playerControllers.Count > 0) { PlayerController player = Msg.conn.playerControllers[0]; if (player != null && player.gameObject != null) { JigsawPlayerController jigsawController = player.gameObject.GetComponent <JigsawPlayerController>(); if (jigsawController != null) { if (NetWorldState == null) { GenerateWorldState(); } ClientInfoMsg clientMsg = Msg.ReadMessage <ClientInfoMsg>(); JigsawPlayerState playerState = NetWorldState.RegisterPlayer(clientMsg.Username); jigsawController.PlayerState = playerState; return; } } } ClientInfoMsg tmp = Msg.ReadMessage <ClientInfoMsg>(); DeferredClientInfo.Add(Msg.conn.connectionId, tmp); }
private void UpdatePlayerNames() { string output = ""; int len = NetWorldState.ConnectedPlayers.Count; for (int i = 0; i < len; ++i) { JigsawPlayerState player = NetWorldState.ConnectedPlayers[i]; Color clr = player.UserColor; output += string.Format("<color=#{0:X2}{1:X2}{2:X2}FF>{3}</color>{4}", (byte)(255.0f * clr.r), (byte)(255.0f * clr.g), (byte)(255.0f * clr.b), player.Username, (i < len - 1) ? "\n" : ""); } DisplayText.text = output; Vector2 textRectSize = TextRect.sizeDelta; textRectSize.y = TextRectLineSize * len; TextRect.sizeDelta = textRectSize; Vector2 panelSize = PanelRect.sizeDelta; panelSize.y = PanelRectBaseSize + textRectSize.y; PanelRect.sizeDelta = panelSize; }
public JigsawPlayerState RegisterPlayer(string Username) { JigsawPlayerState state = new JigsawPlayerState(); state.Id = NextAssignedId; ++NextAssignedId; state.Username = Username; state.UserColor = AssignColor(); ConnectedPlayers.Add(state); Debug.LogFormat("Registered player {0} with Id {1}; total {2} players", Username, state.Id, ConnectedPlayers.Count); return(state); }
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId) { if (NetWorldState == null) { GenerateWorldState(); } var player = (GameObject)GameObject.Instantiate(playerPrefab, Vector3.zero, Quaternion.identity); NetworkServer.AddPlayerForConnection(conn, player, playerControllerId); Debug.Log("Client has requested to get his player added to the game"); ClientInfoMsg clientMsg; if (DeferredClientInfo.TryGetValue(conn.connectionId, out clientMsg)) { JigsawPlayerState playerState = NetWorldState.RegisterPlayer(clientMsg.Username); JigsawPlayerController jigsawController = player.GetComponent <JigsawPlayerController>(); jigsawController.PlayerState = playerState; DeferredClientInfo.Remove(conn.connectionId); } }
public void DeregisterPlayer(JigsawPlayerState State) { ConnectedPlayers.Remove(State); UnassignColor(State.UserColor); Debug.LogFormat("Deregistered player {0} with Id {1}; total {2} players", State.Username, State.Id, ConnectedPlayers.Count); }