강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

건강한 돌고래님의 프로필 이미지
건강한 돌고래

작성한 질문수

절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG

캐릭터의 네트워크 기능 추가 : NetworkPlayer

캐릭터 네트워크 애니메이션 질문 (29강의)

작성

·

24

0

캐릭터의 네트워크 기능 추가 : NetworkPlayer (29 강의)
영상을 보면서 이해가 되지 않는 부분이 생겼습니다.


1. 애니메이션 서버 권한? 클라이언트 애니메이션 요청 구조..?
영상 13분 50초에서 Network Animation 컴포넌트는 서버 권한을 가지고 있기 때문에 A라는 클라이언트에서 '나(owner)'의 캐릭터 애니메이션 실행 요청을 서버에 전달하고 서버에서 '너'의 캐릭터 애니메이션을 실행시켜 주겠다고 하면 그때 다른 클라이언트 B,C.. 등 에서도 A 클라이언트의 애니메이션이 실행되어 보이는 구조라고 이해하면 될까요?

만약 맞다면 서버권한을 그대로 사용한다면 서버에서 처리해주는 별도의 코드가 있어야 다른 클라이언트들에게 A라는 클라이언트의 애니메이션이 공유되는것일까요?

2. Network Transform : Authority..?
애니메이션과 달리 Transform은 Owner로 설정하게 되면 클라이언트에서 실행한것이 서버로 전송이 된다고 했습니다.
그렇다면 애니메이션은 실행을 해달라고 요청을 하는것이고 Transform의 경우 Authority를 Owner로 설정했기 때문에 A 클라이언트 자체에서 실행되서 좌표의 결과값을 서버에 보내는 것인가요?? 그래서 서버에서 다른 클라이언트(B,C.. 등)들에게 A 클라이언트의 좌표값을 공유하는 형식인가요?

3. 클라이언트 실행과 클라이언트의 실행 요청은 다른 개념인거죠?

답변 1

1

이재현님의 프로필 이미지
이재현
지식공유자

안녕하세요.

  1. 네, Server Authority 에 대해 정확히 이해하셨습니다. 또한, 서버에서 별다를 코드가 없어도 실행 권한을 Server로 실행했을 때 애니메이션을 실행하면 다른 클라이언트에게도 NetworkAnimator에 의해 자동으로 전송이 됩니다.

  2. 질문 역시 정확히 이해하고 계십니다. Transform 의 경우 서버 권한일 경우 클라 -> 서버 -> 클라로 데이터가 이동하기 때문에 네트워크 레이턴시가 발생합니다. 이 경우에는 별도로 클라에서 네트워크 레이턴시를 고려해 위치 보정 작업을 해주어야 하는 문제가 있습니다.

  3. 클라이언트 실행은 클라에서 직접 실행(위치, 애니메이션 등)하는 것을 의미하고, 실행 요청이란 의미는 서버측에 요청을 하는 것을 의미합니다.

수강하시다가 또 궁금하신점이 있으시면 편하게 질문해주세요.

꼭 완강하시길 응원합니다.

빠른 답변 해주셔서 감사합니다~!
너무 좋은 강의라 완강을 쉽게 할 수 있을 것 같습니다!
감사합니다.

건강한 돌고래님의 프로필 이미지
건강한 돌고래

작성한 질문수

질문하기