DLL 파일이란?
Dynamic Link Library의 약자로 동적으로 연결되어 있는 라이브러리 파일, 여러 프로그램에 동적으로 공유할 수 있는 코드, 데이터, 리소드 등등을 의미한다.
다른 언어로 작성된 코드를 DLL파일로 만들어 Unity 프로젝트에 통합하는 것 또한 가능하다. 하지만 유니티는 기본적으로
namespace MyDLL
{
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
}
}
프로젝트를 빌드해서 MyDLL.dll
파일을 생성한다.
MyDLL.dll
파일을 Assets/Plugins 폴더에 넣는다.
using UnityEngine;
using MyDLL;
public class ExampleScript : MonoBehaviour
{
void Start()
{
Calculator calc = new Calculator();
int result = calc.Add(5, 10);
Debug.Log("Result: " + result);
}
}
이렇게 라이브러리 처럼 불러와서 사용할 수 있게 된다.
그렇다면 이러한 DLL파일을 만드는 이유는 어떻게 되는 것일까?
특징 | CS파일 | DLL파일 |
---|---|---|
형태 | 소스 코드 | 컴파일된 바이너리 파일 |
수정 가능성 | Unity에서 직접 수정 가능 | 수정 불가(소스 코드가 없음) |
보안 | 소스 코드가 노출됨 | 소스 코드가 숨겨짐 |
재사용성 | 특정 프로젝트에 종속적 | 여러 프로젝트에서 사용가능 |
컴파일 방식 | Unity가 자동으로 컴파일 | 외부에서 미리 컴파일 됨 |
외부 라이브러리 | 외부 라이브러리 통합 불가 | 외부 라이브러리 통합 가능 |
성능 | Unity의 스크립트 엔진에 의존 | 네이티브 코드로 성능 최적화 가능 |
사용 예시 | Unity 스크립트, 게임 로직 | 외부 라이브러리, 성능 최적화 코드 |
유니티는 "모든 것을 하나의 엔진으로 처리하자" 라는 철칙을 가지고 있다. 따라서 외부 라이브러리나 DLL파일을 지양한다.