컬링 데모 | Photon Engine 
 PUN 패키지 에 있 는 RPGMovement 데모 에 네트워크 컬링 을 추가 하 는 방법 에 대한 튜토리얼 입니다 . 우선 네트워크 컬링 이 무엇 이 고 이것 을 사용 하 는 이유 에 대해서 알아보 겠 습니다 . 
 가설 : 씬 에 두 명 의 활성 플레이어 가 있 습니다 . 한 플레이어 는 지도 의 왼쪽 상단 에 있 고 , 다른 플레이어 는 지도 의 오른쪽 하단 에 있 습니다 . 따라서 두 선수 사이 의 거리 는 최대 로 멀리 떨어져 있 습니다 . 또한 지도 중간 에 는 장애물 이 있 어 서로 를 볼 수 없 습니다 . 이 때문 에 첫 번 째 플레이어 는 두 번 째 플레이어 가 현재 무엇 을 하 고 있 는지 알 필요 가 없 으며 반대편 도 그렇 습니다 . 이것 은 네트워크 컬링 으로 이어집니다 . 네트워크 컬링 은 관심 그룹 을 사용 하 여 네트워크 를 통해 전송 되 는 메시지 의 양 을 줄입니다 . 이 솔루션 을 사용 하 면 플레이어 는 현재 관심 이 있 는 몇 개 의 그룹 만 을 구독 하 여 그 그룹 들 과 만 메시지 를 주 고 받 습니다 . 
 유니티 를 시작 한 이후 에 첫 번 째 로 할 것 은 유니티 에 셋 스토어 에서 PUN 최신 패키지 를 다운로드 하 고 파일 을 임포 트 하 는 것 입니다 . 네트워크 컬링 기능 을 추가 해야 하 기 때문 에 RPGMovement 데모 는 선택 해야 하 며 이 이외 의 데모 들 은 체크 하 지 않 아도 지장 은 없 습니다 . 임포 트 가 완료 되 면 Photon Unity Networking > Demos > DemoRPGMovement 로 이동 하 여 이 폴더 내 의 씬 을 오픈 합니다 . 
 계층 구조 를 살펴보 고 파란색 으로 써진 Robot Kyle RPG 를 찾 습니다 . 만약 있 다면 제거 할 필요 가 있 습니다 . 제거 하 지 않 으면 나중 에 수 많 은 예외 들 이 발생 할 수 있 습니다 . 네트워크 컬링 에 사용 되 는 그리드 를 설정 하 겠 습니다 . 계층 구조 를 다시 한 번 잘 보 고 Terrain 게임 오브젝트 를 찾아보 세요 . Terrain 게임 오브젝트 를 우 클릭 후 에 create empty 를 선택 하 세요 . 이렇게 하 면 Terrain 의 자식 으로 새로운 빈 게임 오브젝트 가 생성 됩니다 . 원 하 는 것 으로 이름 을 변경 하 고 , 이 튜토리얼 에서 는 CullArea 으로 이름 을 변경 하 겠 습니다 . CullArea 게임 오브젝트 를 선택 하 고 , 인스펙터 내 의 Add Component 버튼 을 클릭 합니다 . Cull Area 를 찾 아 게임 오브젝트 에 추가 하 세요 . 스크립트 는 게임 오브젝트 의 인스펙터 로 드래그 앤 드롭 할 수 도 있 습니다 . Photon Unity Networking > UtilityScripts 에 도 있 습니다 . 컴포넌트 에서 제공 되 는 옵션 들 을 더 자세히 살펴보 도록 하 겠 습니다 . 
 월드 설정 하 기 
 먼저 컴포넌트 는 프로젝트 의 게임 유형 을 선택 할 수 있 도록 합니다 . 더 자세히 설명 하 면 컬링 영역 의 상단 축 을 설정 합니다 . 가로 스크롤 게임 을 할 때 는 Side Scroller Mode 를 선택 하 고 , 그렇 지 않 고 탑 - 다운 또는 풀 3 D 관점 ( 1 일 칭 , 3 인칭 … ) 게임 에서 는 Top Down Or 3 D Mode 를 선택 합니다 . RPGMovement 데모 로 작업 중 이 므로 Top Down Or 3 D Mode 옵션 을 선택 합니다 . 
 다음 단계 는 컬링 영역 의 차원 을 설정 하 는 것 입니다 . 따라서 게임 오브젝트 의 스케일링 을 증가 시켜 트랜스폼 컴포넌트 를 간단히 변경 합니다 . RPGMovement 데모 에서 는 스케일링 은 x - 와 z - axis 에 대해 100 으로 설정 되 어야 합니다 . 씬 윈도우 를 자세히 살펴보 면 컬링 영역 의 외곽 선 이 있 는 붉은색 스퀘어 가 표시 되 어 있 는 것 을 볼 수 있 습니다 . 또한 스퀘어 가 옮겨져서 트랜스폼 컴포넌트 의 x - 와 z - coordinates 를 변경 하 여 위치 를 조정 해야 할 필요 가 있 다는 것 을 보 실 것 입니다 . 두 값 을 50 으로 설정 합니다 . 테두리 가 이제 데모 의 지도 내 에 맞 아야 할 것 입니다 . 
 트랜스폼 컴포넌트 는 이것 과 같이 보여야 합니다 
 Note : When using Unity 4 the grid possibly might be displaced when taking a look at the game view when having Gizmos activated . You can - more or less - fix that by using ‘ Free Aspect ’ instead of any other fixed aspect ratio in the game view . 노트 : 유니티 4 를 사용 할 때 그리드 는 기즈 모 가 활성 화 될 때 게임 뷰 를 자세히 보 면 그리드 의 위치 가 이동 될 수 도 있 습니다 . 
 CullArea 컴포넌트 에서 제공 하 고 있 는 다른 옵션 들 을 살펴보 도록 하 겠 습니다 . 지금 까지 는 네트워크 컬링 의 가능 성 이 전혀 없 는 단일 의 큰 영역 만 이 있 었 습니다 . 따라서 다음 단계 는 지도 위 에 필요 한 하위 디비전 갯 수 를 정의 하 는 것 입니다 . RPGMovement 데모 에서 는 number of subdivisions 을 2 로 설정 하 면 좋 습니다 . 이 값 을 변경 하 게 되 면 추가 적 으로 더 많 은 옵션 이 나타나 거나 사라지 는 것 을 알 수 있 을 것 입니다 . 이 새로운 옵션 은 각 하위 디비전 에 필요 한 행과 열 의 갯 수 를 정하 도록 해줍니다 . 이 튜토리얼 에서 는 첫 번 째 하위 디비전 에 row 와 column count 을 모두 3 으로 설정 합니다 . 지금 씬 뷰 를 보 면 빨간색 스퀘어 가 아홉 개 의 더 작 은 녹색 사각형 으로 분리 되 어 있 으며 각각 의 네 개 의 더 작 은 파란색 스퀘어 로 되 어 있 는 것 을 볼 수 있 습니다 . 
 컬 영역 컴포넌트 는 이것 과 같이 보여야 합니다 . 
 노트 : 하위 디비전 의 최대 값 은 3 으로 제한 되 어 있 습니다 . 설정 될 수 있 는 생성 되 는 셀 개수 의 최대 값 은 249 로 제한 되 어 있 습니다 . 더 많 은 셀 을 생성 하 려고 시도 하 면 에디터 콘솔 에 예외 가 표시 될 것 입니다 . 
 마지막 두 개 의 옵션 은 씬 과 게임 뷰 조정 을 위한 것 입니다 . automatically align the editor view with the grid 옵션 을 체크 할 때 , 씬 뷰 는 컬 영역 의 위치 와 크기 를 갱신 할 때 마다 매번 바뀌 게 됩니다 . 생성 된 레벨 과 컬 영역 의 외곽 선 을 맞추 려고 할 때 매우 도움 이 될 것 입니다 . Align main camera with grid 는 가로 - 스크롤 또는 탑 - 다운 게임 테스트 를 할 때 사용 되 는 것 으로 메인 카메라 와 그리드 를 맞춥니다 . 이 옵션 은 수작업 으로 테스트 시 에 메인 카메라 를 조정 할 필요 가 없 기 때문 에 작업 을 쉽 게 할 수 있 습니다 . 메인 카메라 조정 은 언두 될 수 있 습니다 . 
 에디터 뷰 를 잘 설정 했 을 때 다음 과 같이 보이 게 됩니다 . 
 방금 환경 구성 을 마쳤 고 다음 단계 에서 는 플레이어 를 설정 해야 합니다 . 따라서 Photon Unity Networking > Demos > DemoRPGMovement > Resources 으로 이동 하 고 Robot Kyle RPG 프리 팹 을 선택 합니다 . 인스펙터 에서 Add Component 를 선택 하 고 목록 에서 Network Culling Handler 를 선택 합니다 . 이 컴포넌트 는 자동 적 으로 전 에 조정 해 놓 았 던 Cull Area 레퍼런스 를 찾 고 규칙 적 으로 체크 합니다 . 이 레퍼런스 는 클라이언트 가 구독 또는 구독 해제 할 관심 그룹 입니다 . 아무것 도 환경 구성 을 할 필요 가 없 기 때문 에 플레이어 와 전체 적 인 설정 이 완료 되 었 습니다 . 
 네트워크 컬링 구성 을 마쳤 고 지금 몇 가지 테스트 를 할 수 있 습니다 . 테스트 하 려면 같 은 룸 에 연결 된 최소 두 개 의 클라이언트 가 필요 합니다 . 유니티 에서 File > Build & Run 으로 이동 하 세요 . 유니티 는 프로세스 가 완료 되 면 자동 으로 시작 되 는 스탠드 얼론 클라이언트 를 생성 합니다 . 테스트 를 위해 생 성 된 실행 파일 을 여러 번 실행 하 거나 에디터 에서 재생 버튼 을 누르 십시오 . 두 명 이상 의 클라이언트 가 로드 되 어 동일 한 방 에 연결 되 어 있 고 플레이어 캐릭터 가 생성 되 고 제어 가능 한 경우 이중 하나 의 플레이어 를 움직이 며 이 클라이언트 가 아닌 다른 클라이언트 의 윈도우 를 보 면서 움직임 을 살펴봅니다 . 두 플레이어 간 의 거리 가 멀 수록 움직임 이 더 느려 집니다 . 이것 은 네트워크 를 통해 전송 된 업데이트 수 가 대폭 감소 했 기 때문 입니다 . 이 와 는 반대 로 두 플레이어 사이 의 거리 가 가까워 지 면 더 많 은 정보 가 전송 되 기 때문 에 이동 이 더 정확 하 고 덜 느려 지 게 될 것 입니다 . 
 네트워크 컬링 에 대한 가능 성 을 설명 으로 작성 된 것 임 을 생각 해 주 세요 . 상용 에서 네트워크 컬링 을 사용 할 때 는 주어진 기본 사항 을 개선 하 고 확장 해야 할 필요 가 있 을 것 입니다 .