Unity Multiplayer Play Mode Package 활용하기

w99hyun·2025년 1월 7일

Unity Engine

목록 보기
2/4

만약 유니티를 사용하는 개발자라면, 특히 멀티플레이를 지원하는 프로그램을 개발해본 개발자라면 ParrelSync에 들어봤을 것이다.

패럴싱크란? https://velog.io/@totohoon01/Unity-ParrelSync

유니티6가 신규 출시할 때, 중점적으로 다루며 홍보했던 Multiplayer Play Mode(이하 MPPM)가 ParrelSync와 비슷한 역할을 한다.

다만 ParrelSync는 프로젝트를 복사하여 에디터를 1개 더 여는 형식이라 아무래도 리소스를 더 먹고 로딩시간도 길다. 가장 불편한 점은 스크립트나 씬 등 프로젝트에 수정사항이 있으면 ParrelSync로 복사한 프로젝트에서도 컴파일이 한 번 더 이뤄지기 때문에 시간이 더 걸리는 점이다. (각각 별도의 프로젝트 처럼 컴파일됨)

유니티의 MPPM을 사용하면 이 부분에서 자유로워진다. 프로젝트의 수정사항이 생겨도 에디터에서 한 번만 컴파일되면 MPPM은 같이 컴파일되기 때문에 중복해서 기다릴 필요가 없다.

잉걸불을 개발하면서도 이 기능을 적극 활용하고 있는데, 내가 활용하는 방법은 다음과 같다.

  • Main Editor (Client)
  • MPPM 2 (Server)
  • MPPM 3 (Client)
  • MPPM 4 (Client)

MPPM은 최대 4개(메인 에디터 포함)까지 동작시킬 수 있으므로 한 개를 Dedicated Server로 활용하는 것이다.

        public override void Start()
        {
#if UNITY_EDITOR
            try
            {
                if (CurrentPlayer.ReadOnlyTags()[0] == "Server")
                    StartServer();
            }
            catch
            {
                DebugUtils.Log("Client 동작 실행");
            }
#endif
        }
      

CurrentPlayer.ReadOnlyTags()

라는 API 함수를 활용할 수 있는데, 이 함수를 통해 MPPM에 등록된 Tags를 가져올 수 있다. 어짜피 하나의 태그만 작성했기 때문에, 첫번째 태그를 가져와서 이 태그가 "Server"인 Player에서만 서버를 실행시켜주면 Dedicated Server처럼 활용할 수 있다.
이를 통해 Main Editor에서 Play Mode를 시작하면 아래 사진의 Player 2는 자동으로 서버를 시작한다.

Player 2가 Server로 실행되었다.

다른 플레이어인 Player 3는 클라이언트의 역할을 할 수 있다.

우측 상단에 위치한 Layout 버튼을 누르면 Console, Game, Hierachy, Inspector, Scene 중 어떤 창을 띄울건지 선택할 수 있다.

플레이모드를 시작했을 때만 체크버튼이 활성화가 되니 참고바란다.

이와같이 Unity에서 공식적으로 ParrelSync의 기능을 지원하고, 사용하기도 더 편리하니 적극 활용하면 개발함에 있어서 훨씬 편할 것이다.

0개의 댓글