public override void Serialize(DataWriter writer) { base.Serialize(writer); writer.Write(playersData.Count); for (int i = 0; i < playersData.Count; i++) { PlayerSnapshotData playerData = playersData[i]; writer.Write(playerData.playerId); writer.Write(playerData.position); writer.Write((int)playerData.team); } writer.Write(ballPosition); }
public override void Deserialize(IPEndPoint remote, DataReader reader) { base.Deserialize(remote, reader); int playerAmount = reader.GetInteger(); playersData.Clear(); for (int i = 0; i < playerAmount; i++) { int playerId = reader.GetInteger(); Vector3 playerPosition = reader.GetVector3(); Team team = (Team)reader.GetInteger(); PlayerSnapshotData playerData = new PlayerSnapshotData(playerId, playerPosition, team); playersData.Add(playerData); } ballPosition = reader.GetVector3(); }
public void Simulate(uint tickIndex) { if (_playerRegistry.Players.Count == 0) { return; } _playersData.Clear(); foreach (ControlledPlayer player in _playerRegistry.ControlledPlayers) { var playerData = new PlayerSnapshotData(player.PlayerId, player.transform.position, player.Team); _playersData.Add(playerData); } var message = new SnapshotMessage(_playersData, _ball.transform.position); _server.SendToAll(message); }