• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

이동 동기화 부분 질문있습니다

22.08.05 17:00 작성 조회수 342

0

며칠째 여러방법으로 시도를 해보아도 안되는 부분이 많습니다..ㅠㅠㅠ

혼자 간단한 3D게임을 만들면서 공부중입니다.

 

 

접속하는 부분까지는 잘 됩니다.

Protocol 에서는 Pox. Poy, Poz를 float로 변경한 후 조이스틱 입력을 받을 boolean을 추가해줬습니다.

이후

클라 프로젝트 쪽에서 UI_button이라는 스크립트 파일을 만들어서 UI_Base의 BindEvent를 통하여 조이스틱을 조작하여

조이스틱의 Vector2의 값을 MyPlayercontroller의 SetMyPlayerMoveDir이라는 프로퍼티로 set안에서 설정후

get부분에서는 Vector3의 값을 내벝어 주게 하였습니다.

 

그리고 나서 isInputJoyStick이 true일 경우 

이렇게 State를 변경해 주었고

UpdateMoving일 경우에는 IsInputJoyStick이 false일 경우 State를 변경하도록 하였습니다.

 

 

Move함수의 인자로는 아까 MyPlayerController의 프로퍼티인 SetMyPlayerMove을 받아서 transform.forward랑 포지션을 움지기게 한뒤,

 

movePacket을 만들어서 PosInfo를 Send 해주는데

동기화가 안됩니다.

 

현재 서버의 로그를 보면

서버를 킨 후 클라에서 조이스틱을 클릭하고 이리저리 움직이면

 

최초의 드래그 한 값만이

 

 

이런식으로 계속 보내 지는거같습니다. 

 

가령 같은 값으로 패킷을 보낸다고해도 다른클라에서는 제 플레이어를 봤을 때

 

뚝뚝 끊기는것 처럼 보여야 하는데 접속만 되고 동기화가 통 되질 않습니다..

답변 1

답변을 작성해보세요.

0

isInputJoystick 이런건 클라에서 본인만 알고 넘어가면 되는거지 동기화 할 대상이 아닙니다.
그리고 3D 게임이라면 입력 방향을 보내기 보다는,
바로 앞에 있는 목적지 좌표를 찍고 그것을 서버에 보내줘서 동기화하는 것이 일반적입니다.
온라인 게임은 원래 난이도가 S급입니다.
코딩 기초가 잘 안잡힌 상태라면 일단 싱글 게임 위주로 만들어보시고
어느 정도 익숙해지신 다음에 온라인 분할을 하시는게 좋습니다.