Version: 2017.1
NetworkStartPosition
NetworkTransformChild

NetworkTransform

NetworkTransform 컴포넌트는 네트워크에 걸쳐 게임 오브젝트의 이동을 동기화합니다. 컴포넌트는 권한을 고려하여 동작하므로, LocalPlayer 오브젝트(로컬 권한을 가짐)는 클라이언트로부터 서버로 자신의 위치를 동기화한 후에 다른 클라이언트로 넘어갑니다. 서버 권한을 지닌 다른 오브젝트는 서버로부터 클라이언트로 포지션을 동기화합니다.

컴포넌트를 사용하기 위해서는 이동을 동기화하고자 하는 프리팹이나 게임 오브젝트에 컴포넌트를 추가해야 합니다. 또한, 해당 게임 오브젝트에 NetworkIdentity가 있어야 합니다. 네트워크에 연결된 오브젝트는 동기화를 위해 스폰되어야 한다는 점에 주의해야 합니다.

프로퍼티

프로퍼티: 기능:
characterContoller Cached CharacterController입니다.
clientMoveCallback2D 서버에서 클라이언트 권한 오브젝트를 승인하기 위해 사용되는 콜백입니다.
clientMoveCallback3D 서버에서 클라이언트 권한 오브젝트를 승인하기 위해 사용되는 콜백입니다.
grounded NetworkTransform 컴포넌트가 표면에 있음(디폴트)을 알려줍니다.
interpolateMovement 동기화된 이동의 보간을 활성화합니다.
interpolateRotation 동기화된 회전의 보간을 활성화합니다.
lastSyncTime 이동 동기화 패킷이 이 오브젝트에 마지막으로 도착한 시간을 나타냅니다.
movementTheshold 오브젝트가 이동 동기화 업데이트를 전송하지 않고 움직일 수 있는 거리입니다.
rigidbody2D 캐시된 Rigidbody2D입니다.
rigidbody3D 캐시된 Rigidbody입니다.
rotationSyncCompression 회전 싱크 업데이트를 얼마나 압축할지를 나타냅니다.
sendInterval sendInterval은 오브젝트를 위해 스테이트 업데이트가 전송되는 주기를 제어합니다.
snapThreshold 이동 업데이트로 인해 오브젝트가 현 포지션으로부터 해당 값보다 더 멀리 움직인 경우, 오브젝트는 부드럽게 움직이는 것이 아니라 순간적으로 이동합니다.
syncRotationAxis 어떤 축을 기준으로 회전이 동기화되어야 하는지를 나타냅니다.
targetSyncPosition 포지션 보간이 일어날 타겟을 나타냅니다.
targetSyncRotation2D 회전 보간이 일어날 타겟을 나타냅니다.
targetSyncRotation3D 포지션 보간이 일어날 타겟을 나타냅니다.
targetSyncVelocity 동기화를 위해 전송되는 속도를 나타냅니다.
transformSyncMode 오브젝트의 포지션을 동기화하기 위해 사용되는 메서드입니다.

힌트

  • NetworkTransform의 인스펙터에는 NetworkSendRate 슬라이더가 있습니다. 총알처럼 생성 후에 업데이트될 필요가 없는 오브젝트에 대해서는 슬라이더를 0으로 조정해야 합니다.
  • NetworkTransformVisualizer를 통해서 NetworkTransform을 디버깅할 수 있습니다.
NetworkStartPosition
NetworkTransformChild