1. 패키지 매니저에서 필요한 패키지 다운로드 및 임포트

- Netcode for GameObjects : 기존 GameObject/MonoBehaviour 워크플로에 멀티플레이어
기능을 추가하는 기본 네트워킹 라이브러리
- Multiplayer Tools : 멀티플레이어 개발 워크플로를 개선
https://docs.unity3d.com/Packages/com.unity.multiplayer.tools@2.2/manual/index.html
Multiplayer Tools에 대한 Docs
- Multiplayer Play Mode: Unity 6 패키지를 사용하면 Unity 에디터를 벗어나지 않아도 멀티플레이어
기능을 테스트 가능, 최대 4명의 플레이어(메인 에디터 플레이어와 3명의 가상 플레이어)를
시뮬레이션
2. NetworkManager 추가
각 프로젝트에서 네트워크 멀티플레이어를 지원하려면 NetworkManager 컴포넌트가 필요
이 필수 컴포넌트는 프로젝트의 네트워크 상태를 관리하고, 연결 및 네트워크 설정을 처리

UnityTransport 컴포넌트가 게임 오브젝트에 추가됨
전송 레이어는 연결 관리, 데이터 전송, 패킷 암호화 등의 저수준 네트워킹 작업을 담당함
3.NetworkObject 추가
NetworkObject는 멀티플레이어 게임에서 서로 다른 클라이언트 간에 네트워크로 연동되거나 동기화되어야
하는 모든 게임 오브젝트에 필요한 컴포넌트
NetworkObject 컴포넌트를 게임 오브젝트에 추가하면
해당 컴포넌트는 ‘네트워크 연동 가능’ 상태가 되어, 상태와 동작을 네트워크를 통해 공유하고 업데이트 가능

— GlobalObjectIdHash는 프로젝트 내의 프리팹 에셋을 식별
— NetworkObjectId는 동일한 프리팹 에셋의 인스턴스를 구분하는 고유 식별자
— OwnerClientId는 오브젝트를 ‘소유’한 클라이언트를 의미
이 식별자는 NetworkManager가 해당 클라이언트를 추적하고 연결된 모든 클라이언트에서 오브젝트의
상태를 일관되게 유지할 수 있도록 도와줍니다.
NetworkObjects는 게임플레이 중에 동적으로 생성(스폰) 되거나 파괴될 수 있습니다.
NetworkObject를 생성하면 연결된 모든 클라이언트에 이 오브젝트가 표시됩니다.
각 NetworkObject에는 소유자가 있으며, 이 소유자는 일반적으로 해당 오브젝트의 동작과 상태를 제어하는 클라이언트입니다.


플레이어 NetworkObject는 주로 플레이어의 이름, 점수, 인벤토리 또는 기타 관련 정보를 비롯한 플레이어
관련 데이터를 저장하고 동기화합니다. 이 데이터는 네트워크에 걸쳐 동기화되므로 연결된 모든 플레이어가
일관된 게임 상태를 경험할 수 있습니다.
클라이언트가 연결되면 NetworkManager는 해당 플레이어가 ‘소유’하는 플레이어 NetworkObject를.
생성합니다. 즉, 플레이어는 자신의 PlayerObject에 대한 권한을 가지고, 그 행동과 상태를 제어할 수 있습니다.
NetCode 컴포넌트 리스트
- NetworkObject: 네트워크로 연동할 오브젝트마다 NetworkObject 컴포넌트가 필요합니다..
이 컴포넌트는 생성, 제거, 소유권과 관련된 프로퍼티와 이벤트를 포함합니다.
- NetworkBehaviour: 이 스크립트는 MonoBehaviour 기본 클래스에 네트워킹 동작을 추가합니다. NetworkBehaviour에는 네트워크 변수, RPC(원격 프로시저 호출), 네트워크 콜백이 포함됩니다.
- NetworkAnimator: 이 컴포넌트는 애니메이션 상태와 파라미터를 클라이언트 간에 동기화합니다.
- NetworkTransform: 이 컴포넌트는 실시간으로 플레이어의 위치, 회전, 스케일을 서버에서 연결된
모든 클라이언트로 복제합니다.
4. Multyplayer Play Mode 실행시키기


에디터에서 Run 후 , 필요한 가상 플레이어를 추가하면 새로운 가상 씬을 만들어 테스트 할 수 있다.

이런식으로 네트워크 환경을 설정할 수 있다.
다음 포스팅에는 직접 플레이어 객체의 위치 동기화 및 NetCode 스크립트 구성을 작성
https://unitysquare.co.kr/growwith/resource/form?id=704
Unity Square
고급 Unity 개발자를 위한 멀티플레이어 네트워킹을 위한 최고의 가이드
unitysquare.co.kr
유니티 코리아에서 제공한 멀티플레이어 네트워킹 전자책을 참고하여 공부한 포스팅입니다.