2015-01-09 2 views
1

"엔터티"변수를 보유하는 kryonet을 통해 일부 패킷을 보냈습니다. 나 자신 엔티티 클래스를 만들었습니다. 것은 엔티티 클래스를 등록 할 때 서버와 클라이언트의 클래스 파일이 정확히 동일하지 않다는 것입니다.Kryonet : 등록되는 클래스가 동일해야합니까?

클라이언트 쪽에서는 서버 측 변수 만 액세스하고 클라이언트가 엔터티를 만드는 하나가 아니기 때문에 모든 생성자를 완전히 제거했기 때문에 몇 가지 메서드가 포함되지 않았습니다. 서버에서 렌더링을하지 않으므로 서버에서 렌더링 메서드를 생략했습니다.

어떤 메소드와 생성자가 실제로 중요한가요? kryonet은 변수가 동일한 지 알아보기 만합니까? 감사!

그런데 궁금한 점이 있다면 Entity는 추상적 인 메서드이므로 "Player"와 같은 새로운 유형의 엔터티를 만들 때이를 확장하여 더 많은 메서드와 변수를 추가합니다. 그 패킷을 보낼 때도 괜찮 았으면 좋겠다.

답변

0

내가 무엇을 묻고 있는지 확실하지 않지만 이해하는 한 귀하의 질문에 최선을 다할 것입니다.

그래서 내가하려는 것은 기본 클래스가 Entity이고 다른 클래스로 확장한다는 것입니다. 클래스에 클라이언트에 전송할 메소드와 서버에 전송할 메소드를 구현합니다.

그래서 어떤 메소드와 생성자가 중요한지 묻는대로 대답은 NO입니다. 빈 생성자 (Kryo 시리얼 라이저에 필요)가 생길 때까지 kryonet은 사용자가 가지고있는 생성자와 상관 없습니다. 빈 생성자가 있는지 확인해야합니다. 나는 2 개 이상의 생성자가있는 크리 오넷에 많은 클래스를 가지고 있으며 완벽하게 잘 작동합니다.

팁 : 네트워크에서 데이터를 전송 했으므로 클라이언트라면 사용하지 않을 데이터 변수를 모두 제거하고 클래스를 더욱 추상화했습니다.

또한 클래스에서 메서드를 보내는 이유는 무엇입니까? 그냥 궁금해서. 나는 당신이 서버와 클라이언트에서 메소드를 가져야하고 패킷 (클래스)에서 데이터를 가져 와서 서버 또는 클라이언트의 메소드로 보내야한다고 생각한다.

알려지지 않은 것이 있으면 알려주십시오.

+0

일부 테스트를 수행하여 이미 대답을 발견했습니다. 동일해야 할 유일한 변수는 변수, 메소드, 패키지 또는 단순히 중요하지 않은 다른 것입니다. – vedi0boy

관련 문제