콘텐츠로 이동

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: 게임 로딩 중에 표시되는 배경 이미지다.
  • Unity WebGL 게임을 실행하는 메인 HTML 파일이다.
  • canvas 엘리먼트를 만들고 Unity 인스턴스를 초기화한다.
  • Service Worker를 등록해 오프라인 캐싱을 지원한다.
  • 모바일 디바이스 감지와 반응형 설정이 들어 있다.
  • Progressive Web App(PWA) 기능을 제공한다.
  • 주요 파일을 브라우저 캐시에 저장해 재방문 시 로딩 속도를 높인다.
  • 오프라인 상태에서도 캐시된 리소스를 제공할 수 있다.

4. manifest.webmanifest - PWA 메타데이터

섹션 제목: “4. manifest.webmanifest - PWA 메타데이터”
  • 앱의 PWA 설정 파일이다.
  • 앱 이름, 아이콘, 시작 URL, 전체화면 모드 등을 정의한다.
  • 모바일에서 홈 화면에 추가할 때 사용된다.

5. StreamingAssets 폴더 - 동적 로드 리소스

섹션 제목: “5. StreamingAssets 폴더 - 동적 로드 리소스”
  • 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: 한국어 음성 파일
  • AssetbundleList.txt: 게임에 포함된 슬롯머신·테이블 게임 목록이다.
  • google-services-desktop.json: Firebase/Google 서비스 설정 파일
  • UnityServicesProjectConfiguration.json: Unity 클라우드 서비스 설정
  • style.css: 게임 컨테이너의 스타일 정의
  • diagnostics.css/diagnostics.js: 게임 진단·디버깅 도구
  • favicon.ico: 브라우저 탭 아이콘
  • progress-bar-*.png: 로딩 프로그레스바 이미지
  • unity-logo-*.png: Unity 로고 이미지
  • webmemd-icon.png: 메모리 진단 아이콘
  1. 사용자가 index.html에 접속한다.
  2. Service Worker가 등록되어 리소스 캐싱을 시작한다.
  3. Web_Release.loader.js가 로드되어 Unity 인스턴스를 생성한다.
  4. Web_Release.wasm과 Web_Release.framework.js가 로드되어 Unity 엔진이 시작된다.
  5. Web_Release.data에서 초기 게임 데이터를 불러온다.
  6. 게임 실행 중 필요에 따라 StreamingAssets의 어드레서블 번들이 동적으로 로드된다.