Company
교육 철학

Resource Building Pipeline

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

리소스 빌드 파이프라인은 게임 리소스를 배포용으로 준비하기 위한 강력한 프레임워크를 제공합니다. 본 문서에 제시된 프로세스와 모범 사례를 따르면, 여러 플랫폼과 배포 채널 전반에서 리소스를 효율적으로 빌드, 관리, 업데이트할 수 있습니다.