public void SendStatesToPlayers() { var packet = new StateListPacket(); packet.States.Add(Network.ServerPlayerID, new PlayerState { PlayerID = Network.ServerPlayerID, Position = FirstPersonInteraction.FirstPersonCamera.transform.position, EulerAngles = FirstPersonInteraction.FirstPersonCamera.transform.eulerAngles, Username = this.Username }); foreach (var item in Players) { packet.States.Add(item.Value.ID, new PlayerState { PlayerID = item.Value.ID, Position = item.Value.Position, EulerAngles = item.Value.EulerAngles, Username = item.Value.Username }); } Broadcast(packet, NetDeliveryMethod.ReliableSequenced); }
public static void UpdateStates(StateListPacket states) { foreach (var item in PlayersInner.Where(o => !states.States.ContainsKey(o.Key))) { PlayersInner.Remove(item.Key); } foreach (var item in states.States) { if (item.Key == Network.PlayerID) { continue; } UpdatePlayer(item.Value, false); } }