Resource Building Pipeline
관련 소스 파일
•
Scripts/Editor/Misc/BuildSettings.cs
•
Scripts/Editor/ResourceBuilder/ResourceBuilder.cs
•
Scripts/Editor/ResourceBuilder/ResourceBuilderController.BuildReport.cs
•
Scripts/Editor/ResourceBuilder/ResourceBuilderController.cs
•
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilder.cs
•
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilderController.cs
리소스 빌드 파이프라인은 게임 자산을 배포용으로 준비하기 위한 포괄적인 시스템입니다. 이는 원본 에셋을 최적화된 패키지 리소스로 변환하여 여러 플랫폼에 배포할 수 있도록 처리합니다. 여기에는 AssetBundle 빌드, 버전 정보 생성, 다운로드 크기를 최소화하기 위한 증분 업데이트 패키지 생성이 포함됩니다.
런타임 리소스 로딩 및 관리에 대한 정보는 Resource Loading and Caching을 참조하세요.
Overview of the Resource Building Pipeline
리소스 빌드 파이프라인은 에디터 툴들의 집합으로, 게임 리소스를 처리하고 패키징하는 역할을 합니다. 이 툴들은 개발 중에 사용되어, 초기 배포와 이후 업데이트를 위한 리소스를 준비합니다.
출처:
Scripts/Editor/ResourceBuilder/ResourceBuilder.cs 19-26
Scripts/Editor/ResourceBuilder/ResourceBuilderController.cs 22-60
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilder.cs 15-24
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilderController.cs 20-52
Resource Builder Tool
Resource Builder는 에셋을 배포 가능한 리소스 포맷으로 처리하고 패키징하는 주요 도구입니다. 빌드 설정을 구성하고, 대상 플랫폼을 선택하며, 빌드 프로세스를 시작하기 위한 그래픽 인터페이스를 제공합니다.
주요 기능
•
여러 플랫폼을 동시에 위한 리소스 빌드
•
최적화된 리소스 크기를 위한 압축 설정 구성
•
다양한 배포 시나리오에 맞는 출력 포맷 지원
•
상세한 보고서를 통한 빌드 프로세스 추적
출처:
Scripts/Editor/ResourceBuilder/ResourceBuilder.cs 19-512
Scripts/Editor/ResourceBuilder/ResourceBuilderController.cs 22-767
Resource Building Process
리소스 빌드 프로세스는 원본 에셋을 최적화된 패키지 리소스로 변환하기 위한 여러 단계를 포함합니다:
1.
Resource Collection Loading: Resource Editor를 통해 정의된 리소스 컬렉션을 로드
2.
Dependency Analysis: 에셋 간 의존성 분석
3.
Build Preparation: 분석을 기반으로 에셋 번들 빌드 데이터 생성
4.
Platform-specific Building: 선택된 각 플랫폼에 대한 에셋 번들 빌드
5.
Version List Generation: 리소스 관리용 버전 리스트 파일 생성
6.
Output Generation: 지정된 출력 포맷 생성
출처:
Scripts/Editor/ResourceBuilder/ResourceBuilderController.cs 569-757
Resource Pack Builder Tool
Resource Pack Builder는 증분 업데이트 패키지를 생성하기 위한 특수 도구입니다. 두 버전의 리소스를 비교하여 변경된 리소스만 포함하는 패키지를 생성하여 업데이트 다운로드 크기를 최소화합니다.
주요 기능
•
소스 버전과 타깃 버전 간의 리소스 팩 생성
•
여러 리소스 버전 지원
•
리소스 팩 관리를 위한 백업 옵션 제공
•
리소스 팩 크기 제한 설정
출처:
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilder.cs 18-486
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilderController.cs 20-556
Resource Pack Building Process
리소스 팩 빌드 프로세스는 두 버전을 비교하여 변경된 부분만을 포함하는 패키지를 생성합니다:
1.
Version Selection: 소스 및 타깃 리소스 버전 선택
2.
Version List Comparison: 버전 리스트 비교로 변경 사항 확인
3.
Changed Resource Collection: 변경된 리소스를 수집
4.
Resource Pack Generation: 변경된 리소스만 포함하는 패키지 생성
5.
Version Information: 리소스 관리자를 위한 버전 정보 포함
출처:
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilderController.cs 344-540
Output Types
리소스 빌드 파이프라인은 서로 다른 목적을 위한 세 가지 주요 출력물을 생성합니다:
Output Type | Purpose | Configuration Property | Path |
Package | 초기 배포용 컴팩트 버전 | OutputPackageSelected | OutputPackagePath |
Full | 전체 설치용 완전한 리소스 | OutputFullSelected | OutputFullPath |
Packed | 특정 로딩 시나리오 최적화를 위한 리소스 | OutputPackedSelected | OutputPackedPath |
추가적으로, Resource Pack Builder는 다음을 생성합니다:
Output Type | Purpose | Path |
Resource Packs | 변경된 리소스만 포함하는 증분 업데이트 | OutputPath |
출처:
Scripts/Editor/ResourceBuilder/ResourceBuilderController.cs 219-235
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilderController.cs 188-198
Configuration Settings
Resource Builder는 빌드 프로세스를 사용자 정의하기 위한 다양한 설정을 제공합니다.
Platform Selection
리소스를 빌드할 플랫폼을 하나 이상 선택할 수 있습니다:
•
Windows
•
Windows x64
•
macOS
•
Linux
•
iOS
•
Android
•
Windows Store
•
WebGL
Compression Settings
리소스 압축 방식을 제어:
•
AssetBundle Compression: LZ4, LZMA, 또는 Uncompressed 중 선택
•
Compression Helper: 커스텀 압축 구현 선택
•
Additional Compression: 전체 리소스에 대해 추가 압축 적용
Output Settings
출력 설정:
•
Output Directory: 모든 출력의 기본 디렉토리
•
Output Package: 패키지 리소스 생성
•
Output Full: 전체 리소스 생성
•
Output Packed: 패킹된 리소스 생성
Resource Version
리소스 버전 제어:
•
Internal Resource Version: 현재 빌드의 버전 번호
•
Applicable Game Version: 해당 리소스가 적용되는 게임 버전
출처:
Scripts/Editor/ResourceBuilder/ResourceBuilderController.cs 108-235
Scripts/Editor/ResourceBuilder/ResourceBuilder.cs 97-330
Resource Building and CD/CI Pipeline Integration
Resource Builder는 커맨드라인 기능과 빌드 이벤트 핸들러 시스템을 통해 지속적 배포(CD/CI) 파이프라인에 통합될 수 있습니다.
Build Event Handlers
커스텀 빌드 이벤트 핸들러를 구현하여 빌드 프로세스에 연결할 수 있습니다:
•
빌드 전 사전 처리 이벤트
•
빌드 후 사후 처리 이벤트
•
특정 플랫폼 빌드 이벤트 처리
•
빌드 프로세스 중 커스텀 동작 수행
출처:
Scripts/Editor/ResourceBuilder/ResourceBuilderController.cs 99-106, 612-728
Build Reports
리소스 빌드 파이프라인은 빌드 프로세스와 결과를 추적하기 위한 상세한 빌드 보고서를 생성합니다.
•
Build Report: 빌드에 대한 상세 정보를 포함하는 XML 파일
•
Build Log: 시간 순서대로 빌드 이벤트와 메시지를 담은 텍스트 파일
빌드 리포트에는 다음이 포함됩니다:
•
제품 정보
•
빌드 설정
•
플랫폼별 세부 사항
•
리소스 및 에셋 정보
•
파일 크기 및 해시 코드
출처:
Scripts/Editor/ResourceBuilder/ResourceBuilderController.BuildReport.cs 20-274
Best Practices
Resource Organization
•
관련 에셋들을 논리적 리소스 그룹으로 묶기
•
플랫폼별 리소스 버전을 위해 variants 사용
•
리소스 의존성을 간결하고 최소화
Version Management
•
각 릴리스마다 내부 리소스 버전 증가
•
게임 버전에 대해 시맨틱 버전 사용
•
배포 전 리소스 팩 철저히 테스트
Build Configuration
•
플랫폼 요구사항에 맞게 압축 설정 지정
•
배포 패키지에는 추가 압축 활성화
•
특정 요구사항을 위해 빌드 이벤트 핸들러로 빌드 프로세스 커스터마이즈
Continuous Integration
•
CI/CD 파이프라인에서 리소스 빌드 자동화
•
릴리스 프로세스에 리소스 빌드 포함
•
문제 해결 및 감사용으로 빌드 리포트 보관
출처:
Scripts/Editor/ResourceBuilder/ResourceBuilderController.cs 569-747
Scripts/Editor/ResourcePackBuilder/ResourcePackBuilderController.cs 378-532
Summary
리소스 빌드 파이프라인은 게임 리소스를 배포용으로 준비하기 위한 강력한 프레임워크를 제공합니다. 본 문서에 제시된 프로세스와 모범 사례를 따르면, 여러 플랫폼과 배포 채널 전반에서 리소스를 효율적으로 빌드, 관리, 업데이트할 수 있습니다.