본문 바로가기
Works/Unity 3D

Unity C# DLL

by Vader87 2021. 5. 2.
반응형

외부에 공유할 기능을 만들었는데 코드는 감추고 싶다면 DLL 로 생성해 배포하는 것도 하나의 방법이 될 것이다.

.Net Standard 가 기본 Framework 가 되고 .Net 4.x 가 Standard 를 포함한 확장된 Framework 이다.

https://docs.microsoft.com/ko-kr/dotnet/standard/net-standard#net-5-and-net-standard

 

.NET Standard

.NET Standard, 해당 버전 및 .NET Standard를 지원하는 .NET 구현에 대해 알아봅니다.

docs.microsoft.com

때문에 특수한 경우가 아니라면 .Net Standard 버전에 맞춰 진행하는 것이 좋을 것으로 보인다.

어기서는 Unity 2020.3.1f1 기준 .NET Standard 2.0 을 지원하기 때문에 이에 맞춰 진행 한다.

새 솔루션 > .NET Standard 라이브러리

 

프로젝트 우클릭 > 추가 > 참조

 

여기서는 Monobehaviour, Editor 등이 필요해 Unity 에서 필요한 dll 파일들을 가져와 참조 시킨다.

UnityEngine. dll
Unity Editor. dll

개발환경은 다음과 같이 구성했다.
Debug - Unity 프로젝트
Release - Unity 프로젝트
Library - C# DLL 프로젝트

Debug

실제 라이브러리 코드를 적용하고 개발하는 Unity Project 이다. Unity 와 연동해서 구동하는데 문제가 없는지 바로 파악하기 좋은 구조를 고민하다 생성하였다.

Library

Debug 에서 작성한 C# 코드를 링크시켜 라이브러리로 빌드시킬 수 있는 설정을 해 둔 Visual Studio Project 이다. 빌드 후 생성된 DLL 파일은 Post Build 기능을 사용해 Release 에 적용되도록 구성하였다.

Release

DLL 파일을 적용한 Unity Project 이다. 결과물이 Unity 에서 정상 작동하는지 테스트하기 위해 생성 하였다.

Debug 개발 -> Library 빌드 -> Release 테스트 의 과정으로 개발하고 완료시 별도의 Repo 를 하나 더 구성하여 OpenUPM 을 통해 배포까지 시도해본다.

반응형

댓글