Unity 原生匯出
適用於已有 Unity 工程。保留原專案的 C#、人物、場景和資源,由 Unity 編譯成瀏覽器版本。開發者使用 Unity 自帶 Web Build Support、Default 模板和 Build;不需要安裝 Combos Editor 外掛、Unity Pipeline、Unity CLI 或自定義模板。 平台能力與原生外掛是否支持 Web,按自己的遊戲逐項適配。
打開工程,安裝官方 Web 模塊
操作位置: Unity Hub 和 Unity 編輯器。
操作: 用工程要求的編輯器版本打開,先運行主要場景。Hub → Installs → 同版本編輯器 → Add modules,安裝 Web Build Support。停止 Play,進入 File → Build Profiles → Web → Switch Platform。舊版 Unity 使用 Build Settings → WebGL。
成功現象: 專案原版能正常運行;Web 平台顯示 Active,腳本和資源導入完成。

圖 01|Unity 原生 Web 平台已激活;圖中的場景列表屬於 BoatAttack 範例。
選擇自己的發佈場景和匯出參數
操作位置: Build Profiles 的 Scene List 與 Player Settings → Web。
操作: 把自己的入口場景放在索引 0,並加入實際需要的其他場景。關閉 Development Build,選擇 Unity 自帶 Default 網頁模板。普通靜態托管可使用 Gzip + Decompression Fallback;本例保持單線程。
成功現象: 入口與遊戲場景都在發佈列表;模板和壓縮設置已保存,無需添加 Combos 的建置腳本。

圖 02|Player Settings 選擇 Unity 自帶 Default 模板。
| 設置 | 本例採用的值 | 如何用於自己的遊戲 |
|---|---|---|
| WebGL Template | Default | 使用 Unity 自帶模板即可;自定義模板另行驗證 |
| Compression / Fallback | Gzip + Decompression Fallback | 讓 Unity loader 在瀏覽器解壓;也可選擇 Disabled 並核對體積 |
| Development / Threads | 關閉 Development Build,單線程 | 多線程依賴托管端跨源隔離,不作為本教程預設接入路線 |
| Graphics / Memory | WebGL 2,初始 256 MB 與內存增長 | 按專案與目標設備驗證;256 MB 是範例設置 |
| Scene List | 主菜單 + Island | 必須替換成自己的場景列表 |

圖 03|Publishing Settings 使用 Gzip、Decompression Fallback 和單線程。
未開啓 fallback 的 .gz / .br 建置需要伺服器匹配 Content-Encoding。Fallback 由 Unity 生成的載入器處理 .unityweb,代價是載入器變大且失去原生流式解壓優勢。不要憑壓縮檔案的擴展名判斷是否可運行;在最終托管環境驗證。官方說明:Unity Web 壓縮與部署 。
帶上遊戲實際使用的動態資源
操作位置: 自己的資源管理配置;使用 Addressables 時進入其 Settings。
操作: 如果專案使用本機 Addressables,配置隨 Player 建置,並保留輸出的 StreamingAssets/aa。專案使用遠端資源時,另外核對公開資源地址和瀏覽器訪問。沒有使用 Addressables 的遊戲無需為了接入安裝它。
成功現象: 瀏覽器能進入實際關卡,船隻、人物、UI 等動態資源均可載入;不只驗證主菜單。
BoatAttack 的設置為 Window → Asset Management → Addressables → Settings → Build → Build Addressables content on Player Build。自己的工程按其資源管理方案處理。官方說明:Addressables 隨 Player 建置 。
原生 Build 到 dist,並檢查成功結果
操作位置: Unity 的 Build Profiles → Web。
操作: 保存工程,點擊 Build,輸出位置選擇專案根目錄,目錄名使用 dist。已有舊成品時備份後輸出到空目錄。等待完成,並檢視 Unity Console。
成功現象: Console 顯示建置成功,dist/index.html 與 Build 等目錄存在;有編譯或資源錯誤時先修復再建置。
dist/
├── index.html
├── Build/ # loader、framework、wasm、data
├── TemplateData/ # Default 模板樣式與圖標
└── StreamingAssets/ # 遊戲使用動態資源時可能存在保留整個匯出目錄。C# 編譯進 WebAssembly,人物、場景和其他數據隨引擎建置;上傳時不逐行重寫成 JavaScript,也不上傳 Unity 的 Assets、Packages、ProjectSettings 或 Library。
在瀏覽器進入實際遊戲,再上傳
操作位置: 專案根目錄終端機與瀏覽器。
操作: 按發布與更新運行 HTTP 服務,或使用 Unity Build And Run。進入實際關卡,操作角色或載具,檢查動態資源、UI、暫停和重玩。完成驗證後按發布與更新上傳與線上復驗。
成功現象: Web 版本主要玩法正常,線上連結也能獨立運行。自己的遊戲只聲明已經驗證支持的設備。

圖 04|BoatAttack 原生 Default 匯出版本已在本機瀏覽器進入比賽並駕駛。
BoatAttack 完整復現、兼容補丁和實測結果見Unity 案例 · BoatAttack。已經能正常匯出 WebGL 的自己的遊戲,直接執行本章流程;無需應用 BoatAttack 的補丁或照抄它的場景名。
請保留當前 Unity 遊戲的原程式碼和資源,使用工程要求的編輯器及官方 Web Build Support,通過原生 WebGL Build 匯出到 dist。檢查入口場景、壓縮 fallback 和動態資源。在瀏覽器驗證實際關卡,再按[發布與更新](/docs/integration/publishing)使用 Combos CLI 上傳和線上試玩。不要安裝 Combos Editor 外掛,也不要應用其他案例專用補丁。來源:Combos 開發者接入指南 。原文核對日期:2026-10-08,CLI v1.14.2;案例結果來自原文記錄的實測。