private void Connection_Received(EndPoint ep, TypedPackage package)
    {
        // Select player
        if (!_players.ContainsKey(ep))
        {
            Debug.Log("Received UDP from unconnected client! By " + ep.ToString());
            return;
        }

        SpawnedPlayer p = _players[ep];

        // Handle msg
        if (package.Type == PackageType.PlayerMove)
        {
            p.Positioning.FromBytes(package.Data, ref package.Offset);
            p.Updated = true;
        }
        else if (package.Type == PackageType.PlayerShoot)
        {
            ShootingData message = new ShootingData(package.Data, ref package.Offset);
            p.ShootBuffer.Shots.AddRange(message.Shots);
        }
        else if (package.Type == PackageType.BoatPartHit)
        {
            HealthData message = new HealthData(package.Data, ref package.Offset);
            lock (p.HitBuffer)
                p.HitBuffer.Add(message);
        }
        else
        {
            Debug.Log("Unhandled UDP msg");
        }
    }
 public SpawnedPlayer(GameObject boat, RoomPlayerInfo info)
 {
     Boat = boat;
     Manager = boat.GetComponent<BoatManager>();
     Positioning = new PositioningData(Boat.transform.position, Boat.transform.eulerAngles);
     ShootBuffer = new ShootingData();
     HitBuffer = new List<HealthData>();
     Info = info;
     Updated = true;
 }