버전 관리
Perforce 통합

버전 관리 통합

Unity는 두 가지의 버전 관리 시스템, 즉 PerforcePlastic SCM과의 통합을 지원합니다. Unity에서 버전 관리 통합을 사용하려면 Unity 프로젝트에 대해 Perforce 또는 Plastic SCM 서버를 설정해야 합니다.

Unity에서 버전 관리 설정

Unity 프로젝트를 열고 Edit > Project Settings 에서 Editor 카테고리를 선택합니다.

Unity 에디터의 버전 관리 설정
Unity 에디터의 버전 관리 설정

Version Control 에는 다음의 설정이 있습니다.

프로퍼티 기능
Mode 버전 관리 모드를 선택합니다.
Hidden meta files 운영체제의 파일 탐색기에서 .meta 파일을 숨깁니다. 어떤 모드를 선택하더라도 Unity는 프로젝트 뷰에 .meta 파일을 표시하지 않습니다.
Visible meta files 이 옵션을 선택하면 Unity가 지원하지 않는 버전 관리 시스템을 사용할 수 있습니다. 이 옵션은 기본 설정입니다. 원하는 버전 관리 시스템을 사용하여 해당 에셋의 소스 에셋과 메타데이터를 관리할 수 있습니다. 자세한 내용은 외부 버전 관리 시스템을 참조하십시오.
Perforce Perforce를 버전 관리 시스템으로 사용하는 경우 이 옵션을 선택합니다.
Plastic SCM Plastic SCM을 버전 관리 시스템으로 사용하는 경우 이 옵션을 선택합니다.
Username
(Perforce 전용)
Perforce 계정과 연결된 사용자 이름을 입력합니다.
Password
(Perforce 전용)
Perforce 계정과 연결된 비밀번호를 입력합니다.
Workspace
(Perforce 전용)
작업 공간을 입력합니다(예: Example_Workspace_1).
Server
(Perforce 전용)
Unity 프로젝트가 위치한 서버를 입력합니다(예: localhost:1666).
Host
(Perforce 전용)
컴퓨터가 가장해야 하는 호스트 이름을 입력합니다(예: workstation123.perforce.com).
Log Level Unity 콘솔 로그에서 수신할 버전 관리 정보 양을 선택합니다.
Verbose Unity는 버전 관리와 관련된 모든 작업을 기록합니다. 이 옵션은 매우 자세한 로깅을 제공하며, 버전 관리 설정을 디버깅하려는 경우에 유용합니다.
Info Unity가 버전 관리와 관련된 오류, 경고 및 정보를 기록합니다.
Notice Unity가 오류와 경고를 기록합니다.
Fatal Unity가 치명적인 오류만 콘솔에 출력합니다.
Status 버전 관리 시스템의 연결 상태에 대한 정보를 표시합니다. 연결되어 있지 않으면 Connect 를 선택하여 설정한 시스템에 연결하십시오.
Automatic Add 이 설정을 활성화하면 Unity는 파일을 에디터나 디스크의 폴더를 통해 프로젝트에 파일을 추가할 때 해당 파일을 버전 관리 시스템에 자동으로 추가합니다. 이 설정을 비활성화하면 파일을 버전 관리 시스템에 수동으로 추가해야 합니다. 이 설정은 기본적으로 활성화되어 있습니다.
Work Offline
(Perforce 전용)
오프라인으로 작업하려면 이 설정을 활성화합니다. 이 설정을 활성화하면 P4V에서 오프라인 작업을 조정하거나 P4에서 조정 커맨드를 사용하여 Perforce 서버 저장소를 오프라인 상태에서 수행한 작업으로 최신 상태로 만들어야 합니다. 자세한 내용은 Perforce로 오프라인 작업을 참조하십시오.
Allow Async Update
(Perforce 전용)
비동기 버전 관리 상태 쿼리를 사용하려면 이 설정을 활성화합니다. 이 설정을 활성화하면 Perforce가 Unity 에디터를 지연시키지 않고 파일의 버전 관리 상태를 업데이트합니다. 버전 관리 서버에 대한 연결의 지연 시간이 긴 경우 이 설정을 사용하십시오.

참고: 상태 쿼리만 비동기입니다. Unity는 파일 상태를 변경하거나 최신 파일 상태 정보를 필요로 하는 작업을 동기적으로 수행합니다.
Show Failed Checkouts
(Perforce 전용)
이 프로퍼티를 활성화하면 Perforce가 작업을 체크아웃할 수 없을 때 다이얼로그를 표시합니다. 이 동작은 연결이 끊어졌거나 편집하려던 에셋을 다른 사용자가 단독으로 체크아웃한 경우에 발생합니다.
Overwrite Failed Checkout Assets
(Perforce 전용)
이 설정을 활성화하면 Unity는 체크아웃할 수 없는 에셋을 저장합니다. 즉 Perforce가 파일을 체크아웃할 수 없는 경우에도 Unity가 파일 저장을 강제로 수행할 수 있습니다. 이 설정은 기본적으로 활성화되어 있습니다. 비활성화하면 Perforce가 파일을 체크아웃할 수 없는 경우 Unity가 파일을 강제로 저장하지 않습니다.
Overlay Icons 이 설정을 활성화하면 에디터에 버전 관리 상태 아이콘이 표시됩니다.
Smart Merge 스마트 병합을 사용하면 Unity가 변경 사항이 같은 줄에 있는 파일들을 쉽게 병합할 수 있습니다. 여러 사용자가 동시에 같은 프로젝트에 대한 작업을 진행하는 경우에 유용합니다.
Off 스마트 병합을 비활성화합니다.
Ask 스마트 병합을 활성화하지만, 충돌이 발생할 경우 병합 전에 알림을 수신합니다. 기본 설정입니다.
Premerge 스마트 병합을 자동으로 사용합니다.

Version Control 설정을 지정한 후 상태 영역 옆에 있는 Connect 버튼을 클릭하여 버전 관리 시스템에 연결하십시오. Unity가 시스템에 연결되면 상태 영역에 Connected 가 표시됩니다.

개정 관리 툴을 조정하려면 Preferences 를 열고 External Tools 섹션을 선택하십시오. 그러면 Revision Control Diff/Merge 아래에서 새 툴을 선택할 수 있습니다.

Unity에서 버전 관리 사용

버전 관리 시스템을 사용할 수 있도록 에디터를 설정하면 버전 관리 클라이언트가 아니라 에디터를 통해 버전 관리 작업을 수행할 수 있습니다. 이렇게 하려면 프로젝트 뷰에서 에셋을 마우스 오른쪽 버튼으로 클릭하십시오.

버전 관리 작업은 사용하는 버전 관리에 따라 다릅니다. 다음 표에는 각 버전 관리에 대해 수행할 수 있는 조치가 나와 있습니다.

버전 관리 작업 설명 Perforce Plastic SCM
Get Latest 버전 관리 시스템의 파일과 일치하도록 시스템의 파일을 업데이트합니다. 지원 미지원. 최신 변경 사항을 가져오고 파일을 업데이트하려면 버전 관리 창(Window > Asset Management > Version Control)을 사용하십시오.
Submit 파일의 현재 상태를 버전 관리 시스템에 제출합니다. 지원 지원
Check Out 파일에 변경 사항을 적용할 수 있습니다. 지원 지원
Check Out (Other) 에셋과 해당 .meta 파일을 모두, 또는 둘 중 하나만 체크아웃할지 여부를 선택합니다. 지원 미지원
Mark Add 파일을 버전 관리에 추가합니다. 지원 지원
Revert 열린 변경 파일에 적용된 변경 사항을 폐기합니다. 지원 지원
Revert Unchanged 이전에 체크아웃되었지만 수정되지 않은 파일의 체크아웃 상태를 제거합니다. 지원 지원
Resolve Conflicts 여러 사용자가 변경한 파일의 충돌을 해결합니다. 지원 미지원. 충돌은 버전 관리 메뉴에 표시되지만, Plastic SCM GUI에서 충돌을 해결해야 합니다.
Lock 다른 사용자들이 변경 사항을 파일에 제출하지 못하도록 막습니다. 지원 미지원. Plastic SCM에 있는 파일을 잠그거나 잠금 해제하려면 특정 Plastic SCM 잠금 파일을 외부적으로 편집해야 합니다. 자세한 내용은 Plastic SCM 통합 페이지를 참조하십시오.
Unlock 잠금이 해제되어 다른 사람들이 변경 사항을 제출할 수 있습니다. 지원 미지원. Plastic SCM에 있는 파일을 잠그거나 잠금 해제하려면 특정 Plastic SCM 잠금 파일을 외부적으로 편집해야 합니다. 자세한 내용은 Plastic SCM 통합 페이지를 참조하십시오.
Diff 컴퓨터의 로컬 파일과 서버의 파일 간의 차이를 비교합니다. 에셋 파일, 또는 에셋 파일과 해당 .meta 파일의 차이만 비교하도록 선택할 수 있습니다. 지원 지원

파일 체크아웃

Perforce 등과 같은 일부 버전 관리 시스템에서는 버전이 지정된 파일은 기본적으로 읽기 전용이며, 편집하려면 파일을 체크아웃해야 합니다. 단, Work offline 설정을 활성화한 경우는 예외입니다. 에디터에서 버전이 지정된 에셋을 사용하면 파일 편집을 활성화하는 Check Out 버튼이 표시됩니다. 또한 프로젝트 설정 인스펙터에 있는 Checkout 버튼으로 특정 프로젝트 설정을 체크아웃할 수 있습니다.

읽기 전용 에셋에 대해 다른 커스텀 편집 툴의 일부를 비활성화하는 커스텀 에디터 스크립트 코드가 있는 경우, 또는 버전이 지정된 파일에 수동으로 작성하려는 경우에는 AssetDatabase.IsOpenForEditAssetDatabase.MakeEditable API를 사용하여 파일의 편집 가능 여부를 확인하고 체크아웃 작업을 수행하십시오.

또한 버전 관리 통합은 커스텀 버전 관리 작업 확인 로직을 위한 Provider.PreCheckoutCallbackProvider.PreSubmitCallback C# 콜백을 표시합니다.

Save Project 작업을 수행할 때 Unity는 에디터에서 수정하거나 수정한 것으로 표시되는 에셋을 디스크에 작성합니다. 그런 다음 필요한 경우 버전 관리에서 에셋이 체크아웃됩니다. 파일이 실제로 변경되지 않아도 에셋이 체크아웃될 수 있습니다. 이는 에디터 스크립트가 수정 여부를 확인하지 않고 에셋에 대해 EditorUtility.SetDirty를 호출할 때 가장 자주 발생합니다.

참고: 예를 들어 서버 작동 중단 또는 라이선스 문제 등의 이유로 Unity가 변경 사항을 버전 관리 클라이언트에 적용하지 못하는 경우 변경 사항이 별도의 체인지셋에 저장됩니다.

변경 사항을 .scene 파일에 저장하면 Unity가 자동으로 체크아웃합니다. Plastic SCM을 사용하는 경우 자동으로 생성된 에셋(예: 라이트맵)도 자동으로 체크아웃합니다.

버전 관리 창

버전 관리 창을 사용하여 변경 리스트의 파일을 볼 수 있습니다. 이 창에 액세스하려면 Window > Asset Management > Version Control 로 이동하십시오.

에디터에 고정된 버전 관리 창
에디터에 고정된 버전 관리 창

Outgoing 탭에는 버전 관리에 적용하기 전에 대기 중인 로컬 변경 사항이 모두 나열되고, Incoming 탭에는 버전 관리에서 가져와야 하는 모든 변경 사항이 나열됩니다.

창에서 에셋이나 변경 리스트를 마우스 오른쪽 버튼으로 클릭하면 해당 작업을 수행할 수 있습니다. 에셋을 리스트 간에 이동하려면 간단히 에셋을 한 변경 리스트에서 대상 변경 리스트의 헤더로 드래그하십시오.

아이콘

에디터는 다음 아이콘을 표시하여 파일과 에셋의 버전 관리 상태를 시각적으로 보여줍니다.

아이콘 목적
파일이 로컬에서 추가되었고, 버전 관리에 추가하기 위해 대기 중입니다.
다른 사용자가 버전 관리에 파일을 추가했고, 버전 관리에 추가하기 위해 대기 중입니다.
파일이 로컬에서 체크아웃되었습니다.
다른 사용자가 파일을 원격으로 체크아웃했습니다.
이 파일을 병합하는 데 충돌이 발생하여 해결이 필요합니다.
파일이 로컬에서 삭제되었고, 버전 관리에서 삭제하기 위해 대기 중입니다.
다른 사용자가 파일을 삭제했고, 버전 관리에서 삭제하기 위해 대기 중입니다.
파일이 아직 버전 관리되지 않습니다. Mark Add 작업을 수행하여 파일을 수동으로 추가할 수 있습니다.
파일이 잠금 설정되어 다른 사용자가 수정할 수 없습니다.
다른 사용자가 파일을 잠금 설정해서 수정할 수 없습니다.
다른 사용자가 이 파일의 새 버전을 체크인했습니다. 최신 버전을 가져오려면 Apply Incoming Changes 작업을 수행하십시오.
서버가 이 파일의 버전 관리 상태를 요청하거나 리스폰스를 기다립니다. Perforce 같은 중앙집중식 버전 관리 시스템을 사용하는 경우에만 표시됩니다.
버전 관리
Perforce 통합