차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
unity:net-statesynchronization [2015/05/21 14:02] – 문서가 unity3d:net-statesynchronization에서 unity:net-statesynchronization(으)로 옮겨졌습니다 V_Lunity:net-statesynchronization [2018/02/22 03:04] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +{{tag>유니티 unity}}
  
 ======상태 동기화 세부사항들(State Synchronization Details)====== ======상태 동기화 세부사항들(State Synchronization Details)======
줄 10: 줄 11:
 [[class-Animation|Animation]]는 각각의 실행되는 애니메이션 상태(시간, 가중치, 속력, 가능/불가능)를 직렬화 합니다. [[class-Animation|Animation]]는 각각의 실행되는 애니메이션 상태(시간, 가중치, 속력, 가능/불가능)를 직렬화 합니다.
  
-[[class-Rigidbody|Rigidbody]]는 위치, 회전, 속도, 각속도를 직렬화 합니다.+[[rigidbody|Rigidbody]]는 위치, 회전, 속도, 각속도를 직렬화 합니다.
  
 스크립트들 (MonoBehaviours)은[[ScriptRef:Network.OnSerializeNetworkView.html|OnSerializeNetworkView()]]함수를 부릅니다. 스크립트들 (MonoBehaviours)은[[ScriptRef:Network.OnSerializeNetworkView.html|OnSerializeNetworkView()]]함수를 부릅니다.
줄 49: 줄 50:
 =====예측(Prediction)===== =====예측(Prediction)=====
  
-서버가 world 상태에 [[KrMain.net-HighLevelOverview|full authority]]이 있으면, 클라이언트들은 서버로부터 수신 받는 상태들에 의해 게임을 업데이트 합니다. 하나의 문제점은 이러한 제어가 자연스럽지 못한 경우가 있습니다. 예를 들어, 플레이어가 “forward” 버튼을 눌렀을 때, 서버로부터 업데이트된 상태를 받을 때까지 플레이어가 움직일 수 없는 그런 경우입니다. 이러한 지연은 접속의 반응 시간(latency)에 의존하며, 접속이 더 나쁠 수록, 플레이어의 액션들은 더 부자연스러워 집니다.+서버가 world 상태에 [[unity3d:KrMain.net-HighLevelOverview|full authority]]이 있으면, 클라이언트들은 서버로부터 수신 받는 상태들에 의해 게임을 업데이트 합니다. 하나의 문제점은 이러한 제어가 자연스럽지 못한 경우가 있습니다. 예를 들어, 플레이어가 “forward” 버튼을 눌렀을 때, 서버로부터 업데이트된 상태를 받을 때까지 플레이어가 움직일 수 없는 그런 경우입니다. 이러한 지연은 접속의 반응 시간(latency)에 의존하며, 접속이 더 나쁠 수록, 플레이어의 액션들은 더 부자연스러워 집니다.
  
 이를 돕는 하나의 방식은 ''Player Prediction''입니다. 클라이언트는 플레이어 예측으로 서버가 자신의 움직임을 어떻게 계산 하는지를 알고, 그 움직임을 자신이 예측합니다. 그래서, 플레이어는 컨트롤과 함께 즉시 움직이지만, 서버는 플레이어의 위치를 마지막 업데이트로부터 봅니다. 서버로부터 상태 업데이트가 도착할 때, 클라이언트는 실제 일어난 것들과 예측한 것들의 차이를 비교할 것입니다.  서버가 플레이어 주위의 환경에 대해 더 많이 알 수 있고 클라이언트는 자신에게 필요한 것들만 알기 때문에 차이가 있을 수 있습니다. 예측시의 에러는 실제로 일어날 때 교정이 되며, 교정이 서서히 이루어 진다면, 더 부드럽고 덜 눈에 띌 것입니다. 이를 돕는 하나의 방식은 ''Player Prediction''입니다. 클라이언트는 플레이어 예측으로 서버가 자신의 움직임을 어떻게 계산 하는지를 알고, 그 움직임을 자신이 예측합니다. 그래서, 플레이어는 컨트롤과 함께 즉시 움직이지만, 서버는 플레이어의 위치를 마지막 업데이트로부터 봅니다. 서버로부터 상태 업데이트가 도착할 때, 클라이언트는 실제 일어난 것들과 예측한 것들의 차이를 비교할 것입니다.  서버가 플레이어 주위의 환경에 대해 더 많이 알 수 있고 클라이언트는 자신에게 필요한 것들만 알기 때문에 차이가 있을 수 있습니다. 예측시의 에러는 실제로 일어날 때 교정이 되며, 교정이 서서히 이루어 진다면, 더 부드럽고 덜 눈에 띌 것입니다.
줄 61: 줄 62:
  
  
-{{tag>유니티 unity}} 
    * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.net-StateSynchronization|유니티코리아위키]] (CC BY-NC-SA 2.0)    * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.net-StateSynchronization|유니티코리아위키]] (CC BY-NC-SA 2.0)