두번째 세션부터 entergame 패킷이 보내지지않습니다.
345
작성한 질문수 2
Part4를 베이스로 삼아 간단한 동기화만 구현을 해보려고 해보는 중입니다. 문제가 되는 것은 처음으로 들어온 세션은 EnterGame 패킷과 Spawn 패킷을 모두 받는 반면에 두 번째로 들어온 세션은 Enter패킷이 들어오지않습니다...
상황을 정리하자면
첫번째 세션: MyPlayer생성 O, other Player 생성 O
두번째 세션: MyPlayer생성 X, other Player 생성 X
로그를 찍어보니 두번째 세션에 EnterGame Handler가 작동을 하지 않더군요... 혹시하는 마음에 질문해봅니다.
EnterGame
public override void EnterGame(GameObject gameObject)
{
if (gameObject == null)
return;
if (gameObject.ObjectType == GameObjectType.Player)
{
Player player = gameObject as Player;
_players.Add(gameObject.Id, player);
player.Room = this;
// 본인한테 정보 전송
{
S_EnterGame enterPacket = new S_EnterGame();
enterPacket.Player = player.Info;
player.Session.Send(enterPacket);
S_Spawn spawnPacket = new S_Spawn();
foreach (Player p in _players.Values)
{
if (player != p)
spawnPacket.Objects.Add(p.Info);
}
player.Session.Send(spawnPacket);
}
}
// 타인한테 정보 전송
{
S_Spawn spawnPacket = new S_Spawn();
spawnPacket.Objects.Add(gameObject.Info);
foreach (Player p in _players.Values)
{
if (p.Id != gameObject.Id)
p.Session.Send(spawnPacket);
}
}
}
답변 1
0
이런 문제는 무조건 디버깅을 통해 해결하셔야 합니다!
(당연히 위 내용만으로는 저도 알 수가 없습니다.)
클라 쪽에서 EnterGame 패킷을 보내고는 있는지 로그 or Breakpoint 확인해보시고
서버 쪽에서도 EnterGame 패킷을 받는지 로그 or BreakPoint 걸어서 확인해보시면
누가 범인인지 명확히 알 수가 있겠죠.
MessagePack
0
90
1
본인 플레이어 이동 관련 질문
0
57
1
Part7 Part9 질문이 있습니다.
0
77
1
.
0
119
1
.
0
110
2
게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제
0
95
1
타일 팔레트 깔았는데도 안돼요
0
133
2
2D로 그냥 만들어도 되나요?
0
89
2
지난 강의와 이어지는게 맞을까요?
0
90
2
순환참조 문제로 인해 발생하는 문제는 없을까요?
0
163
2
유니티 클라와 C++서버연동
0
281
2
멀티플레이 테스트 환경 관련 질문입니다
0
212
3
강의 후반부에 순서 동기화를 위해 잡큐를 사용 안 한 부분 질문입니다!
0
151
2
코드 관련한 몇 가지 질문입니다!
0
155
2
3d 프로젝트 이동 동기화 관련
0
330
4
파트 7 스트레스 테스트 질문 드립니다.
1
192
2
맵 이동 방식
0
137
0
맵 이동 관련해서 질문드립니다.
0
92
1
안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,
0
206
2
안녕하세요. 일전에 질문 드린 포폴 준비 관련 질문의 추가 질문입니다!
0
161
1
[팁] 2024년 기준 버전 이슈?
0
459
1
SendBuffer.cs 삭제 후 대체 되는 부분의 장단점?
1
205
1
지금 강의의 유니티 클라를 IOCP 서버와 연동하는 것
0
338
2
PushAfter 사용 질문
0
193
1





