유니티의 스크립트와 스크립트 외의 다른 리소스들의 컴파일 과정을 살펴보자.
스크립트
1. 스크립트 분류
- Asset 폴더 내 스크립트를 Assembly Definition Files (.asmdef)와 디렉토리 구조에 따라 그룹화한다.
- 예를 들어, Assets/Scripts에 있는 스크립트는 기본적으로 Assembly-CSharp.dll이라는 하나의 DLL로 컴파일 된다.
2. 컴파일
- 유니티는 Roslyn 컴파일러를 사용하여 C# 코드를 DLL 파일로 변환한다.
3. 출력
- 이렇게 생성된 DLL 파일은 Project 폴더의 Library/ScriptAssemblies 폴더에 저장된다.
- Assembly-CSharp.dll: 사용자가 작성한 대부분의 스크립트가 포함된 메인 DLL.
- Assembly-CSharp-Editor.dll: 에디터 전용 스크립트가 포함된 DLL.
스크립트 외의 다른 리소스
1. 리소스
- 빌드 과정에서 유니티 에셋 번들 시스템 또는 리소스 데이터 파일 (.resS, .assetbundle)로 패키징 된다.
- 이 데이터는 런타임에 메모리에 로드되거나 Resources.Load 같은 API로 호출된다.
2. 쉐이더 - 특수처리
- 쉐이더 파일(.shader, .cginc)은 유니티의 쉐이더 컴파일러를 통해 GPU에서 실행 가능한 바이트코드로 변환된다.
- 변환된 결과는 .compiled 파일로 저장되며, 유니티 빌드에 포함된다.
3. 에셋 번들 및 어드레서블 (AssetBundles, Addressables)
- 에셋 관리 방식
- 에셋 번들은 특정 리소스 그룹을 번들링하여 효율적으로 로드할 수 있도록 패키징한다.
- 이 과정에서 DLL 파일이 아니라 바이너리 데이터로 패키징된다.
유니티 스크립트와 리소스의 차이점
항목 | 스크립트 (C#) | 리소스 (텍스처, 오디오 등) |
처리 방식 | DLL로 컴파일 | 압축 및 변환 후 패키징 |
저장 경로 | Library/ScriptAssemblies | 빌드 출력물(예: .resS, .assetbundle) |
런타임 사용 방법 | 코드로 호출 (자동 로드) | API를 통해 로드 (예: Resources.Load) |
그렇다면, 컴파일 시간을 줄이기 위해서 이 DLL 파일을 이용할 수 있을 것이다!
'Study > Unity Engine' 카테고리의 다른 글
[Unity] Profiling (0) | 2025.01.18 |
---|---|
[Unity] DLL과 PDB (0) | 2025.01.18 |
[Unity] 오브젝트 검색 방법 (0) | 2025.01.18 |
[Unity] ScriptableObject (0) | 2025.01.18 |
[Unity] Layer (0) | 2025.01.18 |