- 목차
다른 DLL 추가
Custom Package 자체적으로 다른 DLL을 사용해야되는 경우를 뜻함
DLL 파일
- 방법 1 : 메인 프로젝트에서 설치 (Nuget 패키지)
- 의미 : 이 방법은 Custom package에서 제공하는 것이 아닌 메인프로젝트에서 설치를 유도.
- 순서
- 메인 프로젝트에 NuGetForUnity 라이브러리를 이용하여 패키지를 설치하면 DLL이 생성된다.
- asmdef파일에 위에서 생성한 dll 파일을 연결.
- 방법 2 : 외부 DLL 파일을 Custom package 폴더 내에 위치
- 의미 : Custom package에서 dll을 의존 정보를 설정
- 순서
- DLL 파일을 (방법 1에 의해 만든 DLL을 복사해도 된다.) Custom Package 내부 폴더에 위치 (본인의 경우 "커스텀패키지폴더\Assemblies\Runtime" 폴더 내부에 위치 시켰다.)
- asmdef파일에 dll 파일을 연결.
asmdef 파일 수정하기
- 방법 1 : 유니티 에디터에서 수정
- 유니티 에디터에서 asmdef을 클릭
Inspector 창에서 "Override References" 체크
그러면 "Assembly References 부분이 활성화 될 것인데, 여기서 추가하려는 dll 선택
- 방법 2 : (Notepad++, VS Code 같은) 텍스트 편집기로 수정
- 텍스트 편집기에서 asmdef 파일을 연다.
- "precompiledReferences" 항목을 추가한 후, dll 파일 이름을 입력한다.
문제
단, 이 경우 PrecompiledAssemblyException 예외가 발생할 수 있다.
해결방법 1 : Package Manager에서 "Version Control" Package를 업데이트 해본다.
해결방법 2 : 메인 프로젝트에서 중복되는 DLL 삭제 (패키지에 있는 DLL을 삭제해도 되지만, 다시 복원 되는 경우도 있다고 .)
해결방법 3 : 빌드 결과물 폴더 (Build, Library, Logs, obj ) 삭제 후, 프로젝트 다시 열기
주의사항
DLL이 Managed 인 경우에만 테스트 해봄. Native의 경우는 안된다는 이야기가...
출처 : https://forum.unity.com/threads/third-party-dlls-in-custom-packages.790940/
다른 외부 패키지 추가 (Git URL)
알아둬야할 사항
Unity Editor 조건 : 지원하는 Package manager가 Git URL을 이용하여 패키지를 추가할 수 있는 기능을 가지고 있어야함.
2018.3 이상, 2019.3.4f1 이상, 2020.1a21 이상
커스텀 패키지를 만드는 방법은 다른 포스트 참고해서 만드는 것을 추천"Enter Safe Mode?"와 같은 프로젝트 오류 대화상자가 뜨는 경우 "Ignore" 버튼을 눌러 프로젝트를 띄운다음, 새로고침을 (단축키 Ctrl + R) 해본다.
모든 패키지 모두 잘 작동하는 것이 아니니 확인할 필요가 있다.
설치된 패키지는 Custom Package로 취급된다.
"Git Dependency Resolver For Unity"로 추가한 git 패키지가 의존성까지 자동으로 설치해주지 않는 경우가 존재한다. 즉, 추가한 패키지가 Custom Package에서 인식이 되지 않는다는 것을 의미한다. 위에서 서술한 "다른 DLL 추가" 작업을 진행하면된다.
커스텀 패키지를 편집 (제작, 테스트) 하려는 프로젝트 (이하 프로젝트 A)
※ Git Dependency Resolver For Unity에 정리된 내용을 따라해도 된다.
Package Manager를 이용하여 Git Dependency Resolver For Unity를 설치한다.
(텍스트 편집기 같은 것으로 수정) 커스텀 패키지의 "package.json" 파일 내부에 "gitDependencies" 항목을 추가하고, 자신이 추가하려는 라이브러리의 git 주소를 입력한다.
해당 라이브러리에서 입력하라고 안내하는 git경로대로 입력해야된다.
Unity Editor에서 새로고침 (Ctrl + R)을 하면 "Packages" 폴더 내부에 추가한 패키지가 설치된다.
단, Custom Package로 취급하여 설치하게 된다.
Unity Editor에서 custom package의 해당하는 asmdef 파일을 클릭하여 Inspector 탭을 띄운후 (우클릭 → Properties로 띄워도 됨), "Dependencies" 부분을 편집한다. (텍스트 에디터를 이용하여 asmdef 파일에 "references" 부분을 직접 편집해도 된다.)
"프로젝트 B"를 위해서 Git Dependency Resolver("Coffee.GitDependencyResolver")도 추가하면 좋다.
커스텀 패키지를 적용하려는 프로젝트 (이하 프로젝트 B)
유니티 (프로젝트 B)를 종료한 상태에서 진행
(텍스트 편집기를 이용하여) GitDependencyResolverForUnity를 manifest.json 파일에 아래와 같이 추가한다.
{
"dependencies": {
"com.coffee.git-dependency-resolver": "https://github.com/mob-sakai/GitDependencyResolverForUnity.git",
...
},
}
- 프로젝트 빌드 결과물을 삭제
- Library폴더, obj 폴더 등
- Packages 폴더의 경우 프로젝트 루트와 Assets 폴더 내부에 각각 있다. 내부에 다시 빌드해야된다고 판단되는 패키지는 삭제해도 된다.
- "프로젝트 A"에서 만든 Custom Package를 "프로젝트 B" 에 있는 Packages 폴더 내부에 복사
- sln파일, Assets 폴더들이 있는 Package 폴더를 의미함
- Unity Editor를 이용하여 프로젝트 실행
- "Enter Safe Mode?"와 같은 프로젝트 오류 대화상자가 뜨는 경우 "Ignore" 버튼을 눌러 프로젝트를 띄운다음, 새로고침을 (단축키 Ctrl + R) 해본다.
댓글
댓글 쓰기