private void OnJoin(JoinPacket packet, NetPeer peer) { Debug.Log("[S] Join packet received: " + packet.UserName); var serverCharacter = new ServerCharacter(packet.UserName, peer, Gameconfig.StartingPoint[peer.Id]); _serverManager.AddCharadcter((byte)peer.Id, serverCharacter); //Send join accept var ja = new JoinAcceptPacket { Id = (byte)peer.Id, UserName = packet.UserName, ServerTick = _serverTick }; peer.Send(WritePacket(ja), SendType.ReliableOrdered); // 들어온 친구한테 기존 정보 다 보내줌 var pj = new CharacterJoinedPacket { UserName = packet.UserName, NewCharacter = true, CharacterPacket = serverCharacter.CharacterPacket, ServerTick = _serverTick }; _netManager.SendToAll(WritePacket(pj), SendType.ReliableOrdered, peer); // 이전 유저들에게 정보 다 보내줌 pj.NewCharacter = false; foreach (var pair in _serverManager.Characters.Where(pair => pair.Key != (byte)peer.Id)) { pj.UserName = pair.Value._data.Name; pj.CharacterPacket = pair.Value.CharacterPacket; peer.Send(WritePacket(pj), SendType.ReliableOrdered); } }