✍️ 개요
유니티를 사용해온 프로그래머라면 사용자 패키지(Custom Package)을 만들고 싶다는 생각이 든 적 있지 않나요?
저는 최근에 게임잼이나 신작을 준비할 때마다 빠르게 시작하기 위한 탬플릿이 있으면 좋겠다는 생각을 했습니다.
그래서 자주 사용하는 Manager 모듈을 탬플릿으로 제작하여 사용자 패키지로 만들었습니다.
혹시라도 저처럼 사용자 패키지를 제작하고 싶은 분들을 위해 과정을 공유하도록 하겠습니다.
📌 커스텀 패키지 레이아웃 설정
위 하이러키 구조가 유니티가 권장하는 커스텀 패키지 레이아웃입니다.
다소 복잡해보이지만 모두 구축할 필요는 없습니다.
그래서 저는 package.json, Editor, Runtime, Samples~만 구축하도록 하겠습니다.
만약 자세한 내용에 대해 궁금하시다면 아래 페이지를 참고하세요.
[ 패키지 레이아웃 - Unity 메뉴얼 ]
먼저 여러분이 만든 소스 코드와 리소스들이 있을거예요.
그 파일들을 유니티가 권장하는 패키지 레이아웃에 맞춰 재구축해줄겁니다.
저는 BasicTemplate 이름으로 커스텀 패키지를 제작할 것입니다.
먼저 BasicTemplate 폴더 아래에 다음과 같이 세팅합니다.
- package.json : 패키지 이름, 버전, 의존성, 설명 등을 포함
- Editor : 에디터 스크립트(툴, 커스텀 인스펙터 등)
- Runtime : 실행 시 필요한 스크립트나 리소스
- Samples~ : 기능 사용법을 알려주기 위한 샘플 (Unity Editor에서 확인 불가)
이제 레이아웃도 구성했으니 데이터를 세팅하도록 하겠습니다.
※ package.json은 메모장 또는 IDE로 생성하시면 됩니다.
📌 Pakcage.json 세팅
package.json은 패키지의 특정 버전에 관한 정보를 관리하는 json 파일입니다.
유니티는 package.json을 통해 패키지를 해석하기 때문에 매우 중요한 파일입니다.
package.json에는 여러 프로퍼티가 존재하지만, 그 중 필수와 의무 프로퍼티에 대해서만 다루겠습니다.
필수 프로퍼티
- name : 공식적으로 등록되는 패키지 이름
- version : 패키지 버전 숫자 (SemVer 형식 준수)
의무 프로퍼티
- description : 패키지에 대한 간략한 설명
- displayName : Unity 에디터에 표시되는 패키지 이름
- unity : 패키지와 호환 가능한 가장 낮은 Unity 버전
그 외에는 옵션 프로퍼티로, 굳이 추가하지 않아도 됩니다.
위 사진을 참고하시면서 package.json를 세팅해주세요.
만약 패키지 매니페스트에 대해 자세히 알고싶다면 아래 링크를 참고하세요.
[ 패키지 매니페스트 - Unity 매뉴얼 ]
📌 어셈블리 정의
패키지 내 스크립트는 반드시 어셈블리 정의 파일(.asmdef)과 연결해야 합니다.
어셈블리 정의 파일을 생성하는 방법은 다음과 같습니다.
[ 우클릭 ] - [ Create ] - [ Scripting ] - [ Assembly Definition ]
그후 다음과 같이 명명하여 생성해주세요.
Edtior 폴더 내에 Editor/MyCompany.MyFeature.Edtior.asmdef 생성
Runtime 폴더 내에 Runtime/MyCompany.MyFeature.Runtime.asmdef 생성
이때 종속성으로 인해 소스 코드에 오류가 발생할 수 있습니다.
그런 경우에는 어셈블리 정의 파일을 눌러 종속성을 추가해주세요.
어셈블리 정의에 대해 자세히 알아보고 싶으시면 아래 링크를 참고하세요.
[ 어셈블리 정의 및 패키지 - Unity 메뉴얼 ]
📌 커스텀 패키지 Github에 등록하기
레이아웃과 어셈블리 정의를 모두 끝마쳤으니 Github에 등록하여 Git으로 설치하는 패키지로 만들겠습니다.
새로운 브랜치를 생성하여 활성화해줍니다.
위 사진처럼 커스텀 패키지를 구성하는 폴더와 파일을 모두 선택하여 복사하여 다른 공간에 백업해둡니다.
프로젝트의 최상단 폴더로 돌아와 .git과 .gitignore 파일을 제외하고 모두 삭제해줍니다.
그리고 아까 백업해둔 커스텀 패키지의 폴더와 파일들을 위 사진처럼 복사 붙여넣기 해줍니다.
이제 브랜치에 커밋을 하고 Github에 PR합니다.
📌 커스텀 패키지 설치하기
Github에 들어가면 위 사진처럼 upm_basic_template 브랜치가 보입니다.
이제 이 브랜치를 통해 커스텀 패키지를 설치할 수 있답니다.
프로젝트에 들어가서 Code을 눌러 HTTPS URL을 복사합니다.
그리고 유니티로 돌아와 테스트를 위한 새로운 프로젝트를 생성해줍니다.
커스텀 패키지를 설치하기 위해 Package Manager을 열어줍니다.
그리고 좌측 상단에 '+' 기호를 눌러 Install package from git URL을 클릭합니다.
여기서 아까 복사한 URL에 태그를 추가하여 입력합니다.
https://github.com/gus6615/Unity-Develop-Kit_6000v.git#upm_basic_template
※ 여러분의 repo와 branch 값으로 설정해주셔야 합니다! 위 URL은 제 커스텀 패키지일 뿐입니다!
URL을 입력하면 위와 같이 커스텀 패키지를 설치하기 시작합니다.
짜잔! 커스텀 패키지가 정상적으로 설치되었습니다.
혹시라도 궁금한 점이 있거나 문제가 발생했다면 댓글로 말씀해주세요 :)
'유니티(Unity) > 기능 구현' 카테고리의 다른 글
[Unity 기능] Sprite Atlas에 대하여 (1) | 2024.12.15 |
---|---|
[Unity 기능] 9-Slicing Sprite 제작 (1) | 2024.12.07 |
[기능] GetComponent 최적화 (CachedMonobehaviour.cs) (1) | 2024.11.11 |