inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

Player의 MoveDir, PosInfo 관련 문의 (C_MoveHandler)

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

안녕하세요? 좋은 강의 제공 주셔셔 감사합니다. 코드를 따라 가면서 궁금한 사항이 있어 글 남기게 되었습니다. 서버와 클라가 서로 연결 될 때 ClientSession.cs의 MyPlayer의 정보가 MyPlayer.Info.PosInfo.State = CreatureState.Idle; MyPlayer.Info.PosInfo.MoveDir = MoveDir.None; 으로 정의 되는걸로 보입니다. (코드 하단) public override void OnConnected(EndPoint endPoint) { Console.WriteLine($"OnConnected : {endPoint}"); MyPlayer = PlayerManager.Instance.Add(); { MyPlayer.Info.Name = $"Player_{MyPlayer.Info.PlayerId}"; MyPlayer.Info.PosInfo.State = CreatureState.Idle; MyPlayer.Info.PosInfo.MoveDir = MoveDir.None; MyPlayer.Info.PosInfo.PosX = 0; MyPlayer.Info.PosInfo.PosY = 0; MyPlayer.Session = this; } RoomManager.Instance.Find(1).EnterGame(MyPlayer); } 궁금한 사항은 하기 부분 입니다. 연결 된 이후에 MyPlayer가 어디서 변경 되기에 public static void C_MoveHandler(PacketSession session, IMessage packet) 에서 session 정보를 받아다가 쓸 수 있는지 알 수 있을까요 ?? ㅜㅜ 특히 C_MoveHandler 코드 중에서 PlayerInfo info = clientSession.MyPlayer.Info; 부분이 이해가 안되는데, 현재 MyPlayer가 정보 중 Move Dir 은 None으로 계속 유지되고 있는게 아닌가요 ? 어디서 MyPlayer정보가 업데이트 되는지 알 수 있을까요 ? ㅜ //일단 서버에서 좌표 이동 PlayerInfo info = clientSession.MyPlayer.Info; info.PosInfo = movePacket.PosInfo; //다른 플레이어한테도 알려준다. S_Move resMovePacket = new S_Move(); resMovePacket.PlayerId = clientSession.MyPlayer.Info.PlayerId; resMovePacket.PosInfo = movePacket.PosInfo; clientSession.MyPlayer.Room.Broadcast(resMovePacket);

  • session
  • packet
  • C#
  • unity
  • C_MoveHandler
이영호 댓글 3 좋아요 0 조회수 501

인기 태그

인프런 TOP Writers

주간 인기글