Unity WebGL 빌드 산출물 구조 분석
Unity WebGL 빌드 구조
섹션 제목: “Unity WebGL 빌드 구조”1. Build 폴더 - 핵심 게임 실행 파일
섹션 제목: “1. Build 폴더 - 핵심 게임 실행 파일”Web_Release.loader.js: Unity WebGL 로더 스크립트다. 게임을 초기화하고 다른 파일들을 로드한다.Web_Release.framework.js: Unity 런타임 프레임워크다. Unity 엔진의 JavaScript 부분이 들어 있다.Web_Release.wasm: WebAssembly 바이너리다. C++로 작성된 Unity 엔진의 핵심 부분이 컴파일된 것으로, 게임의 메인 로직이 들어 있다.Web_Release.data: 게임의 초기 데이터 파일이다. 씬, 텍스처, 모델 등 기본 리소스가 압축되어 있다.Web_Release.jpg: 게임 로딩 중에 표시되는 배경 이미지다.
2. index.html - 진입점
섹션 제목: “2. index.html - 진입점”- Unity WebGL 게임을 실행하는 메인 HTML 파일이다.
- canvas 엘리먼트를 만들고 Unity 인스턴스를 초기화한다.
- Service Worker를 등록해 오프라인 캐싱을 지원한다.
- 모바일 디바이스 감지와 반응형 설정이 들어 있다.
3. ServiceWorker.js - 캐싱 관리
섹션 제목: “3. ServiceWorker.js - 캐싱 관리”- Progressive Web App(PWA) 기능을 제공한다.
- 주요 파일을 브라우저 캐시에 저장해 재방문 시 로딩 속도를 높인다.
- 오프라인 상태에서도 캐시된 리소스를 제공할 수 있다.
4. manifest.webmanifest - PWA 메타데이터
섹션 제목: “4. manifest.webmanifest - PWA 메타데이터”- 앱의 PWA 설정 파일이다.
- 앱 이름, 아이콘, 시작 URL, 전체화면 모드 등을 정의한다.
- 모바일에서 홈 화면에 추가할 때 사용된다.
5. StreamingAssets 폴더 - 동적 로드 리소스
섹션 제목: “5. StreamingAssets 폴더 - 동적 로드 리소스”5.1 aa 폴더 (Addressable Assets)
섹션 제목: “5.1 aa 폴더 (Addressable Assets)”- Unity Addressable Asset System으로 관리되는 리소스다.
catalog.json/hash: 어드레서블 에셋 카탈로그 파일로, 동적 로드 가능한 모든 리소스의 위치를 정의한다.settings.json: 어드레서블 시스템 설정 파일이다.- WebGL 폴더: 실제 번들 파일이 저장되는 곳이다.
monoscripts.bundle: MonoBehaviour 스크립트defaultlocalgroup_assets_all.bundle: 기본 로컬 그룹 에셋localization-*-korean*.bundle: 한국어 현지화 번들voice_lobby_kr_assets_all.bundle: 한국어 음성 파일
5.2 기타 파일
섹션 제목: “5.2 기타 파일”AssetbundleList.txt: 게임에 포함된 슬롯머신·테이블 게임 목록이다.google-services-desktop.json: Firebase/Google 서비스 설정 파일UnityServicesProjectConfiguration.json: Unity 클라우드 서비스 설정
6. TemplateData 폴더 - UI 리소스
섹션 제목: “6. TemplateData 폴더 - UI 리소스”style.css: 게임 컨테이너의 스타일 정의diagnostics.css/diagnostics.js: 게임 진단·디버깅 도구favicon.ico: 브라우저 탭 아이콘progress-bar-*.png: 로딩 프로그레스바 이미지unity-logo-*.png: Unity 로고 이미지webmemd-icon.png: 메모리 진단 아이콘
실행 흐름
섹션 제목: “실행 흐름”- 사용자가
index.html에 접속한다. - Service Worker가 등록되어 리소스 캐싱을 시작한다.
Web_Release.loader.js가 로드되어 Unity 인스턴스를 생성한다.Web_Release.wasm과Web_Release.framework.js가 로드되어 Unity 엔진이 시작된다.Web_Release.data에서 초기 게임 데이터를 불러온다.- 게임 실행 중 필요에 따라 StreamingAssets의 어드레서블 번들이 동적으로 로드된다.