3월 21, 2016

[HLAPI] IndexOutOfRangeException:NetworkReader:ReadByte out of range : NetBuf sz: ... pos: ... 에러

아마 서버와 클라이언트 간 메시지를 주고 받다가 이런 에러를 보았을 것이다.
처음엔 메시지 크기가 커서 그런 줄 알았는데...
유니티 공식 문서에는 한번에 최대 1400 바이트는 보낼 수 있다고 되어있다.
알고보니 서버의 메시지 클래스와 클라이언트의 메시지 클래스 간 규격이 일치하지 않아서
발생한 문제였다.

예를 들어 서버에서 정의한 사용자 메시지 클래스가

public class MyMessage : MessageBase
 {
  public string a;
  public string b; 
  public string c;
 }
위와 같다면, 클라이언트에서 역시 위와 동일한 코드로 메시지가 정의되어있어야 한다.
구글링해도 명확한 답변이 없어서 잠시 헤맸는데... 쉽게 해결되는 에러였다.

댓글 없음:

댓글 쓰기

댓글