[Unity] Unity Package Manager (유니티 패키지 매니저 UPM )
유니티에서 모듈을 배포하는 형식이 Unity의 버전업 방식에서 패키지로 변화되었다. 기능이 하나 추가된다고 할 때 기존의 Unity의 버전업을 통해서 제공했을 때는 유니티의 재설치가 필요했고 추가한 기능의 대해서 버그가 발생했을 때의 대응속도가 빠르지 않았었다. 유니티 자체에 기능이 종속되었기 때문에 수정으로 인한 사이드 이펙트를 체크하는데 시간이 걸려서 그랬을 것으로 예상한다.
반면 패키지 방식은 기능이 패키지 단위로 묶여있고 유니티의 종속적이지 않는 장점과 필요한 기능만을 프로젝트에 추가할 수 있어서 컴팩트하게 프로젝트를 유지할 수 있다.
유니티는 패키지 매니저를 통해 개발 중인 버전과 정식 배포되는 버전, 업데이트가 필요한 패키지 등을 보여주고 사용자는 필요한 패키지를 install 하거나 update를 하면서 프로젝트를 관리할 수 있다.
● 유니티 패키지 매니저의 동작 방식
▶ 프로젝트가 생성되거나, 프로젝트을 열 때 packages 폴더에 있는 manifest.json 파일을 읽는다.
: 해당 파일을 읽으면 프로젝트에 필요한 패키지의 이름과 버전 정보를 알수 있다.
: 프로젝트에 패키지를 설치하면 manifest.json의 내용이 갱신된다.
▶ 파일에 있는 패키지와 버전 정보를 체크하여 먼저 글로벌 캐시 폴더에 해당 패키지와 버전이 있는지 체크한다.
: 글로벌 캐시 폴더를 사용하는 이유는 패키지를 개별 프로젝트별로 다운받았을 때 패키지를 설치하는 부하를 줄이기 위함이다.
▶ 만약 해당되는 패키지와 버전이 없는 경우, 패키지를 다운받을 수 있는 저장소 주소에서 다운을 받은 후 글로벌 캐시 폴더에 저장합니다.
: 기본적으로 유니티에서 제공하는 패키지를 다운받는 저장소의 주소는 packages.unity.com 이다.
▶ 다운을 받았거나, 이미 글로벌 캐시 폴더에 존재하는 패키지를 프로젝트에 설치한다.
● 패키지 매니저 살펴보기
▶ 패키지 추가 버튼
: Unity에서 제공하는 패키지 이외에 사용자가 만들거나 다른 사용자가 만든 커스텀 패키지는 "+" 버튼을 통해 추가가 가능한다. 다운 받은 패키지의 package.json 을 선택하거나, tar.gz 을 선택하거나 git 주소로 추가할 수 있다.
▶ 패키지 보기
: All packages는 패키지 레지스트리의 모든 패키지를 표시한다.
: In Project는 프로젝트에 설치된 패키지를 표시한다.
: My Assets는 어셋 스토어에서 다운로드 받았었던 패키지들을 표시한다.
: Built-in packages는 Unity 패키지만을 표시한다.
▶ 패키지 보기
: Reset Packages to defaults 는 프로젝트의 패키지 상태를 초기 상태로 복구한다.
: Show defendencies 는 각 패키지의 종속성을 표시한다.
: Show preview packages는 프리뷰 상태의 패키지도 표시하도록 한다.
▶ 패키지의 상태는 4개의 상태를 가지고 있다.
: Preview 는 베타 상태의 패키지로, 기능 구현이 거의 끝났지만 코드의 안정성을 테스트하는 상태라고 볼 수 있다. 유니티의 최신 기술을 먼저 사용해보고 싶은 경우에 install 에서 사용할 수 있다.
: Verified 는 패키지가 테스트 및 호환성에 대한 검증이 완료된 상태로 실제 상용 버전에 사용해도 괜찮은 패키지이다.
위의 2가지 상태를 많이 볼 수 있고, 별도의 커스텀 패키지를 만들지 않는 다면 다른 상태 값은 보기 어렵다.
: In Development 는 현재 개발 중인 패키지를 나타낸다.
: Production-read 는 패키지 레지스트리 ( 패키지를 다운받을 수 있는 곳 )에 공개했음을 나타 낸다.
▶ 패키지의 버전
: 패키지의 화살표를 클릭하면 패키지의 버전을 볼 수 있고, 원하는 버전을 선택해서 설치도 가능하다.
: 가장 왼쪽 끝 숫자부터 메이저 버전, 마이너 버전, 패치 버전으로 사용된다.
▶ 패키지의 설치 및 제거
: 패키지를 선택한 후 오른쪽 하단의 Install 또는 update, remove로 패키지의 설치 및 업데이트 제거가 가능하다.