참고: UNet은 지원이 중단되었으며 향후 Unity에서 삭제될 예정입니다. 현재 새로운 시스템이 개발 중입니다. 자세한 내용과 다음 단계는 이 블로그 포스트를 참조하십시오. |
네트워크로 연결된 게임 오브젝트는 Unity 네트워킹 시스템으로 제어되고 동기화되는 게임 오브젝트입니다. 동기화된 네트워크 연결 게임 오브젝트를 사용하면 게임 인스턴스를 플레이하는 모든 플레이어가 경험을 공유하도록 만들 수 있습니다. 모든 플레이어가 게임 내에서 각기 고유한 시점으로 동일한 이벤트와 액션을 보고 듣습니다.
Unity 멀티플레이어 게임은 보통 네트워크로 연결된 게임 오브젝트와 일반(네트워크 연결 안 됨) 게임 오브젝트의 조합이 포함된 씬을 사용하여 만들어집니다. 네트워크로 연결된 게임 오브젝트는 게임플레이 동안 이동하거나 변경되기 때문에 게임을 함께 플레이하는 모든 사용자 사이에 동기화되어야 합니다. 네트워크로 연결되지 않은 게임 오브젝트는 게임플레이 동안 이동하거나 변경되지 않는 게임 오브젝트(예: 바위나 울타리 같은 정적 장애물) 또는 이동하거나 변경되지만 플레이어 간 동기화가 필요하지 않은 게임 오브젝트(예: 게임 배경에서 부드럽게 흔들리는 나무 또는 지나가는 구름)입니다.
네트워크로 연결된 게임 오브젝트에는 Network Identity 컴포넌트가 연결되어 있습니다. 하지만 Network Identity 컴포넌트 단독으로는 멀티플레이어 게임에서 게임 오브젝트를 동작하거나 활성화하기에 충분하지 않습니다. Network Identity 컴포넌트는 동기화를 위한 시작점으로, Network Manager가 게임 오브젝트의 생성 및 삭제를 동기화하도록 해주지만, 그 외에는 동기화할 게임 오브젝트의 특정 프로퍼티를 지정하지는 않습니다.
네트워크로 연결된 게임 오브젝트에 대해 동기화할 항목은 제작하는 게임 타입과 각 게임 오브젝트의 목적에 따라 다릅니다. 동기화해야 할 몇 가지 예는 다음과 같습니다.
플레이어 및 논플레이어 캐릭터(NPC)와 같이 움직이는 게임 오브젝트의 위치 및 회전
애니메이션화된 게임 오브젝트의 애니메이션 상태
변수 값(예: 현재 게임 라운드의 남은 시간 또는 플레이어의 남은 에너지)
이러한 항목 중 일부는 Unity로 자동 동기화할 수 있습니다. 네트워크로 연결된 게임 오브젝트의 동기화된 생성 및 삭제는 NetworkManager에 의해 관리되고 스포닝이라고 불립니다. Network Transform 컴포넌트를 사용하여 게임 오브젝트의 위치 및 회전을 동기화하고, Network Animator 컴포넌트로 게임 오브젝트의 애니메이션을 동기화할 수 있습니다.
네트워크로 연결된 게임 오브젝트의 기타 프로퍼티를 동기화하려면 스크립팅을 사용해야 합니다. 자세한 내용은 상태 동기화를 참조하십시오.