Unity는 Perforce와 Plastic SCM을 통해 버전 관리 통합을 지원합니다. 선택한 버전 관리에 관한 자세한 내용은 해당 페이지를 참조하십시오.
Version Control System을 사용하면 사용자/여러 사용자가 코드를 더 쉽게 관리할 수 있습니다. 이 시스템은 액세스가 모니터링되는 파일의 저장소로, Unity의 경우 Unity 프로젝트와 관련된 모든 파일이 이에 해당됩니다. 버전 관리를 통해 모든 변경 사항을 근원까지 추적함과 더불어 변경 사항을 누가 왜 적용했고 무엇이 변경/추가되었는지도 추적할 수 있습니다. 그러면 이전 버전의 코드로 되돌리거나 버전 간 차이를 쉽게 비교할 수 있습니다. 버그가 처음 발생한 시점과 버그를 처음 초래했을 수 있는 코드도 쉽게 파악할 수 있습니다.
버전 관리 소프트웨어를 지침에 따라 설치한 후 다음 절차를 따라야 합니다.
선택한 클라이언트를 사용하여 컴퓨터에서 작업 공간을 설정하거나 동기화합니다. 이 단계와 관련된 도움말은 Plastic SCM 통합 가이드나 Perforce 통합 가이드를 참조하십시오.
프로젝트를 작업공간에 복사하거나 Unity를 시작해 작업 공간에서 새 프로젝트를 생성합니다.
프로젝트를 열고 Edit->Project Settings->Editor 메뉴로 이동합니다.
선택한 버전 관리 시스템에 따라 버전 관리 __Mode__를 선택합니다.
사용자 이름/암호/서버/작업 공간 등 버전 관리 설정을 입력합니다.
파일이 프로젝트(또는 디스크의 폴더)에 추가될 때 자동으로 버전 관리에 추가하려면 Automatic add 를 체크해야 합니다. 체크하지 않으면 새 파일을 수동으로 추가해야 합니다.
오프라인에서 작업하려면 옵션을 선택해야 합니다. 이 모드는 변경 사항을 선택한 버전 관리에 수동으로 다시 통합하는 방법을 아는 고급 사용자에게만 권장됩니다(Perforce를 사용한 오프라인 작업).
팀의 기호와 버전 관리 선택에 맞게 에셋 직렬화, 디폴트 동작 모드 및 스프라이트 패커 옵션을 편집할 수 있습니다.
연결을 클릭하고 잠시 후에 연결 버튼 위에 “연결됨”이 표시되는지 확인합니다.
스탠다드 클라이언트(예: p4v)를 사용하여 Assets 및 ProjectSettings 폴더에 있는 모든 파일(.meta 로 끝나는 파일 포함)이 추가되는지 확인합니다.
참고: 언제든지 Prefences 메뉴로 이동하고 External Tools 를 선택하여 Revision Control Diff/Merge 툴을 조정할 수 있습니다.
이 시점에는 버전 관리 클라이언트를 통하지 않고 프로젝트 뷰에서 에셋을 마우스 오른쪽 버튼으로 클릭하여 대부분의 중요한 버전 관리 작업을 직접 수행할 수 있어야 합니다. 버전 관리 작업은 선택하는 버전 관리에 따라 다릅니다. 아래 표에는 각 버전 관리별로 직접 수행 가능한 작업이 나와 있습니다.
버전 관리 작업 | 설명 | Perforce | Plastic SCM |
체크 아웃 | 파일에 변경 사항 적용 가능 | 지원 | 지원 |
헤드와 차이 비교 | 로컬 및 헤드 파일 간 차이 비교 | 지원 | 지원 |
최근 버전 가져오기 | 최근 변경 사항을 가져오고 파일 업데이트 | 지원 | 미지원\| |잠금|다른 사용자의 파일 변경 방지|지원|미지원\\| |마크 추가|로컬에서 추가하지만 버전 관리에는 추가하지 않음|지원|지원| |충돌 해결|여러 사용자가 변경한 파일의 충돌 해결|지원|미지원\\\ |
되돌리기 | 열린 변경 파일에 적용된 변경 사항 폐기 | 지원 | 지원 |
변경 전으로 되돌리기 | 변경되지 않은 열린 파일에 적용된 변경 사항 폐기 | 지원 | 지원 |
제출 | 버전 관리에 파일의 현재 상태 제출 | 지원 | 지원 |
잠금 해제 | 잠금을 해제하고 누구나 변경할 수 있게 허용 | 지원 | 미지원\\ |
\* Plastic SCM을 사용하여 최근 변경 사항을 가져오고 파일을 업데이트하려면 버전 관리 창을 사용해야 합니다.
\\ Plastic SCM을 사용하여 잠금 설정 및 잠금 해제를 하려면 특정 Plastic SCM 잠금 파일을 외부에서 편집해야 합니다. 자세한 내용은 Plastic SCM 통합 페이지를 참조하십시오.
\\\* 충돌은 버전 관리 메뉴에 표시되지만 Plastic SCM GUI에서 해결됩니다.
Version Control Window(Window->Version Control)에서 변경 리스트에 있는 파일을 살펴볼 수 있습니다. 아래 그림에는 에디터의 인스펙터 옆에 도킹되어 있습니다.
‘Outgoing’ 탭에는 버전 관리에 적용하기 전에 대기 중인 로컬 변경 사항이 모두 나열되는 한편, ‘Incoming’ 탭에는 버전 관리에서 가져와야 하는 모든 변경 사항이 나열됩니다.
이 창에서 에셋이나 변경 리스트를 마우스 오른쪽 버튼으로 클릭하여 해당 작업을 수행합니다. 에셋을 리스트 간에 이동하려면 간단히 에셋을 한 변경 리스트에서 대상 변경 리스트의 헤더로 드래그합니다.
다음 아이콘은 Unity 에디터에 표시되어 파일/에셋의 버전 관리 상태를 시각화합니다.
아이콘 | 의미 | 추가 정보 |
로컬에서 추가된 파일 | 버전 관리에 추가하기 위해 대기 중 | |
다른 사용자가 버전 관리에 추가한 파일 | 버전 관리에 추가하기 위해 대기 중 | |
사용자가 파일을 체크 아웃함 | 로컬에서 체크 아웃됨 | |
다른 사용자가 파일을 체크 아웃함 | 원격으로 체크아웃 | |
이 파일을 병합하는 데 충돌이 발생 | 해결 필요 | |
사용자가 파일을 삭제함 | 버전 관리에서 삭제하기 위해 대기 중 | |
다른 사용자가 파일을 삭제함 | 버전 관리에서 삭제하기 위해 대기 중 | |
파일이 아직 버전 관리되지 않음 | 해당 없음 | |
사용자가 파일을 잠금 | 다른 사용자가 수정할 수 없음 | |
다른 사용자가 파일을 잠금 | 사용자가 수정할 수 없음 | |
다른 사용자가 이 파일의 새 버전을 체크인함 | 최근 버전을 얻으려면 “Apply Incoming Changes” 이용 |
참고할 사항:
에셋을 사용하여 작업할 때 Unity는 에셋 파일과 관련 .meta 파일을 모두 자동으로 체크 아웃합니다. 하지만 대부분의 상황에서는 .meta 파일이 수정되지 않으므로 예를 들어 나중에 브랜치를 병합하는 경우 추가 작업이 어느 정도 발생할 수 있습니다.
Unity는 예를 들어 버전 관리 저장소에 네트워크로 연결하지 않고 계속 작업할 수 있는 오프라인 모드 작업을 지원합니다.
예를 들어, 서버 작동 중단 또는 라이선스 문제 등의 이유로 Unity가 변경 사항을 버전 관리 클라이언트에 적용하지 못하는 경우 변경 사항이 별도의 변경 사항 집합에 저장됩니다.
에셋 서버(Unity의 내부 버전 관리 시스템)를 사용한 작업에 대해서는 에셋 서버 문서를 참조하십시오.
Unity에서 지원되지 않는 버전 관리 시스템을 사용하여 작업하기 위해서는 에디터 설정에서 버전 관리 Mode 로 MetaData 를 선택합니다. 그러면 선택한 버전 관리 시스템으로 소스 에셋과 해당 에셋의 메타 데이터를 관리할 수 있습니다. 이에 관한 자세한 내용은 외부 버전 관리 시스템 문서를 참조하십시오.