2D Jump And Run 데모
이 씬에서는 Photon를 사용하여 2D 개체를 동기화하는 방법과 위치와 물리적 업데이트의 조합이 어떻게 동기화된 객체의 부드러운 움직임에 영향이 있는지 설명합니다.
메인 캐릭터에는 PhotonTransformView
와 PhotonRigidbody2DView
두 개의 컴포넌트가 적용 됩니다.
PhotonTransformView
에 대한 상세 내용은 RPG Movement Demo 를 참고 하시기 바랍니다.
PhotonRigidbody2DView
의 간단한 인스펙터에서 객체의 속도와 각속도 동기화 옵션을 설정 할 수 있습니다.
캐릭터는 속도와 각속도로 인하여 움직이기 때문에 원격 클라이언트에 있는 이동결과는 로컬 클라이언트처럼 부드럽게 이동 합니다.
Unity의 물리 시뮬레이션은 결정적이지 않으므로 동일 입력일지라도 결과가 약간 달라 질 수 있습니다.
물리적 데이터 동기화에만 의존하게 되면 약간씩 발생되는 차이가 누적되어 연결된 클라이언트의 동기화가 어긋나게 될 수 있으니 물리적 데이터 동기화에만 의존하지 않아야 합니다.
이를 극복하기 위해서 PhotonTransformView
와 PhotonRigidbody2DView
의 조합을 이용 합니다.
PhotonTransformView
는 실제 정확한 위치를 일정 간격으로 전송하고 PhotonRigidbody2DView
의 속도는 위치 업데이트 사이의 움직임을 부드럽게 합니다.속도를 동기화하여 캐릭터가 레벨 오브젝트에 부딪쳤을 때 적용되는 충격이 적절한 지 확인할 수 있습니다. 씬에 스폰되는 물리 큐브에서 실제로 해 볼 수 있습니다.
보충
여러개의 붉은 타일 (위에 설 수 있는 타일)을 덮는 충돌 상자가 있다는 것을 알 수 있습니다. 모든 붉은 박스에 콜라이더(collider)를 가지고 있다면 캐릭터가 상자 가장자리 사이에서 움직일 수 없게되어, 움직임에 지장을 초래합니다.
콜라이더(collider)가 적으면 성능이 향상됩니다.(이 데모에서는 적절하지 않습니다)
Back to top