본문 바로가기
Works/Unity 3D

[Unity] OpenUPM - Custom Package 만들기

by Vader87 2021. 5. 2.
반응형

패키지 레이아웃 규칙, 레이아웃을 꼭 지킬 필요는 없어 보이지만 설명의 내용으로 유추해 보건데 Editor 관련 코드는 asmdef 를 통해 반드시 구분해 주어야 하는 듯 하다.한다.

docs.unity3d.com/kr/2021.1/Manual/cus-layout.html

 

패키지 레이아웃 - Unity 매뉴얼

다음은 공식 Unity 패키지에서 따르는 패키지 레이아웃 규칙입니다.

docs.unity3d.com

패키지 매니패스트 (= pacakge.json)가 반드시 필요하다, 이게 있어야 Unity 에서 패키지로 인식하고 불러온다.

docs.unity3d.com/kr/2021.1/Manual/upm-manifestPkg.html

 

패키지 매니페스트 - Unity 매뉴얼

Unity는 패키지 매니페스트 파일(package.json)을 사용하여 특정 패키지의 특정 버전에 관한 정보를 관리합니다. 패키지 매니페스트는 항상 패키지의 루트에 위치하며, 패키지에 관한 중요 정보(예:

docs.unity3d.com

Load from disk 로 Custom Package 를 불러오는 테스트 성공.

이제 패키지를 OpenUPM 에 올려 본다. Github 주소를 입력해 주면 내부의 package.json, ReadMe.md 파일등을 자동으로 연동해 준다. 특별한 설정없이 주소 연결만 하고 진행이 가능하다.

openupm.com/docs/adding-upm-package.html#upm-package-criteria

 

Adding UPM Package

Adding UPM Package UPM Package Criteria OpenUPM requires the package fulfills the below criteria: The package name should conform to the Unity Package Manager naming convention The package should comply with Unity Terms and Package Guidelines . The package

openupm.com

아래 링크를 통해 OpenUPM 패키지 추가하는 절차를 진행할 수 있다.

openupm.com/packages/add/

 

Package Add

 

openupm.com

위 절차를 거치면 YAML 파일을 생성해 주고 이를 OpenUPM Github 에 Commit 한다, 그리고 Pull Request 하게 되는데,

등록 후 메일을 받고 (설명에는 20~30분 정도 걸린다고 써 있는데 최초 등록이라 그런지 시간이 많이 걸렸다)

openupm.com/packages/com.chanuklee.unityexpandtool/?subPage=deps

링크를 통해 등록된 것을 확인 할 수 있다.

Wait for CI pipelines to complete 라고 써 있는 걸 봐서는 OpenUPM 의 Github 에 Webhook 이나 Timer 를 통해 Jenkins 같은 CI 를 통해 배포되고 있는 것 같다. Pull Request 버튼을 통해서 했으니 직접 CI 에 배포 요청을 했던 걸까?

참고로 배포 후 ReadMe.md 파일을 업데이트 했는데 이는 OpenUPM 에 바로 반영되지 않았다. 업데이트에 시간이 걸리던가, 따로 업데이트 요청을 하거나 새로 Release 를 하는 액션이 별도로 있어야 반영되는 듯 하다.

Git repository 가 package 하나와 매칭 되면 Github 의 Release 기능을 통해 패치 배포가 가능하다.

배포한 패키지를 설치해서 테스트 해보려 했떠니 meta 파일이 없다며 에러를 낸다.

Resources 는 사용하지 않는 폴더 인데 끼어 들어갔다. 제거 후 다시 배포로 해결.

package.json 업데이트 하는 것을 빼먹고 release 빌드를 했더니 OpenUPM 쪽에서 버전 에러가 발생하면서 등록이 되지 않았다.

package.json 으로 정상 버전으로 수정하고 같은 버전으로 release 배포 했을 때는 아리와 같이 이미 올라간 버전으로 나왔다.

배포 코드에 한번 등록된 버전은 수정이 안 되는 것 같다.

반응형

댓글