📌 蔡的盤點 × 逐題解答總報告

2026-07-19|依你的心智圖逐節點作答(網頁端 8 題+Unity 端 4 題)|狀態:已解答 已規劃·待拍板 需你定案 待板機實測
✅ 已解答 5📘 已規劃·待拍板 3🔴 需你定案 2🟡 待板機實測 2
結論先講:12 題沒有一題是「無解」。卡關的只有 2 題要你拍板(outcome 形式、操作員選單顯示方式)+ 2 題要板子到手實測(WebGL 能力、效能)。

🕸 網頁端項目(8 題)

依心智圖順序
1. 套用桑比機率已規劃·待拍板

答:桑比機率完全不用移植,一行都不用改寫成 JS。這正是「表演與判定分離」架構最大的紅利——桑比框架留在 Unity 原地照跑,Web 打中怪物時送 hit_query 過橋問桑比「能不能死」,答案 1~2 幀內回來(模型 A)。機率參數、調整介面、稽核紀錄全部維持你們現有的桑比生態。

唯一要做的新東西:定義「桑比的判定結果 → Web 演出參數」的對照(就是規格書開放問題 1 的 outcome 形式)。

📎 協定規格書 §9-1(模型 A/B)|需要:機率+企劃一起定 outcome 欄位
2. 盤點「網頁 WebGL 做不出來」的問題待板機實測

誠實盤點,分三類:

類別項目說明
🚫 真做不到
→ Unity 殼承接
硬體 IO(投幣器/出票機/燈條/串口)、系統級控制(開機自啟、看門狗、關導航列)、精細記憶體管理、原生多執行緒瀏覽器沙盒天生禁止碰硬體——所以架構才設計成 Unity 當機台管家,這些全歸 Unity,已閉環
💰 做得到但成本高複雜 Shader 工具鏈(沒有 Unity 編輯器生態,要手寫 GLSL)、高階粒子編輯器、大規模骨骼動畫本專案已用「手寫+instancing+烘焙」路線做掉了主要需求;新增華麗特效時成本比 Unity 高,要在需求評審時把關
✅ 曾疑慮、已實證可行3D 場景+多怪物+特效的整體渲染compat 管線已實跑:背景/怪物 instancing/陀螺/地面特效,draw calls 約 30、桌機實測 50+ FPS、載入 3.8 秒

剩下的未知數只有一個:板機 GPU 上的實際 FPS——板子到手第一件事實測,配合既有 perfConfig 降級管線調檔位。

📎 使用/限制/風險報告 §二、§三|wiki/conventions/webgl-3d-rendering-rules.md(R1-R17 都是實戰驗證)
3. 整個專案的製作方式已解答

兩條產線+一份合約:

時程上 Web 端可先行(橋接層+mock),Unity 端等套件與板子到位做 POC,最後聯調走協定驗收清單。

📎 使用/限制/風險報告 §一(三階段)+§四(6 步路線圖)
4. 打包 Atlas 方式(具體方案)已規劃·可開工

好消息(查證過 code):引擎端的 Atlas 支援已經存在。專案的 SpriteRenderer 原生支援「同一張 atlas 的所有 sprite 共用一個 draw call」,每個 sprite 可指定 UVRect(在大圖中的子區域)——等同 Unity SpriteAtlas 的 GPU 端效果。缺的只是「打包管線」(把散圖合成大圖+座標表),補上就通:

環節做法對應 Unity 概念
① 打包工具build 腳本自動跑(free-tex-packer-core 免費可程式化,或整合進現有 asset-intake 工具鏈)。輸入:散圖資料夾;輸出:atlas.webpatlas.json(每張圖名 → x,y,寬,高)SpriteAtlas 資產打包
② 引擎讀取載入 atlas.webp 成一張 texture+讀 json 建 frame 表;建 sprite 時給 texture=atlas, uvRect=frame——SpriteRenderer 現成 API,遊戲邏輯不用改Sprite.Create from atlas
③ 分組原則依「同時出現在畫面」分組:UI 一張、道具/投擲物一張、特效碎圖一張;單張上限 2048SpriteAtlas 分組
④ 自動化時機npm run build 時自動重打包(美術丟散圖照舊,不用手動操作)+ asset-lint 檢查散圖有沒有漏進 atlasBuild 時自動 pack

範圍界定(什麼不進 atlas):3D 模型 diffuse(instancing 已批次化,合圖反而搞壞 UV)、全螢幕背景圖(單獨載)、Loading 提示大卡圖。進 atlas 的是:UI 圖示、2D sprite 碎圖、特效序列圖。

📎 查證:SpriteRenderer.ts:6/69/291(atlas+UVRect 註解)|可整合進 art-asset-intake 工具鏈(--type atlas)
5. 效能優化待板機實測

已完成:資產瘦身 92%(143→12MB)、開頁預載+真 Loading gate、貼圖 1024 WebP(GPU 記憶體省 75%)、instancing+地面特效烘焙、asset-lint 閘門防退化。

板機階段待做(都已列入路線圖):

📎 stages/asset-slim/report.md|使用/限制/風險報告 風險表「效能不達標」項
6. Define 設定(網頁端)+ Vite 是什麼已解答

先講 Vite 是什麼(用 Unity 對照):Vite 就是網頁界的「Unity Editor+Build Pipeline 二合一」,這個專案從第一天就在用它:

Vite等同 Unity 的說明
npm run devPlay Mode開發伺服器:瀏覽器即時預覽、存檔自動刷新
npm run buildBuild 出包把幾百個原始檔編譯+壓縮成 dist/ 成品資料夾(就是要放進 APK 的那包)
vite.config.tsProjectSettings/BuildSettings打包規則設定檔
.env 檔+modeScripting Define Symbols+Build Profile下面 Define 三層的第一層

Define 設定三層(具體操作):

判斷口訣:出包就固定的 → ①;除錯要隨時切的 → ②;操作員會調的 → ③

📎 協定規格書 §3 init/config_update|vite.config.ts(專案根目錄現有檔)
7. Json 表格串接已規劃·待拍板

原則:一份表、兩邊讀、擁有權分清楚。

待 outcome 形式定案後,哪些表歸哪邊就能列出完整清單。

📎 依賴:規格書開放問題 1
8. Web 遊戲打包進 APK(走 AssetBundle 思路避免過大包)已解答

你的 AssetBundle 直覺完全正確,Web 有等價且更簡單的做法——混合式(建議):

📎 Telegram 2026-07-19 已詳答|可補進使用報告成正式章節(說一聲就補)

🎮 Unity 端項目(4 題)

U1. Unity 鑲嵌 Web 網頁方式+網頁的資料怎麼包裝已規劃·待拍板

鑲嵌:UniWebView 6(已評估定案:直接包系統 WebView、零額外損耗、v6 主打 Channel Messages 訊息通道、維護最活躍)。全螢幕疊加模式。

資料包裝:上面第 8 題的混合式——dist 資料夾=一包靜態資產,內建出廠版+外置更新版。供檔走 localhost 小伺服器或套件 asset 映射(POC 後二選一,都不需要網路)。

📎 套件評估(Telegram 2026-07-19,含官方文件連結)|使用/限制/風險報告 §一-2
U2. Unity 和網頁溝通(IO 控制訊號/機率控制/遊戲紀錄/錯誤訊息)已規劃·待拍板

你列的四項正好就是協定規格書的四大塊,全部已定義:

你的節點協定對應備註
IO 控制訊號coin_insertedpause·resumehardware_errorpayout_result;實體按鍵建議「Unity 統一收再轉發」單軌制⚠️ 按鍵路由待你拍板
機率控制hit_query → 桑比擲骰 → hit_result(模型 A,往返 8~33ms);同幀合併保護⚠️ outcome 形式待定
遊戲紀錄Web 送 round_event 事件流,Unity 記錄+計票(單一真相源);局終對帳、序號防漏已閉環
錯誤訊息雙向:Web error 上報入 Unity 紀錄;Unity hardware_error 下發凍結畫面;心跳 3 秒斷自動重載+局中回復已閉環
📎 協定規格書 §3/§4/§6+執行緒圖解
U3. 既有項目:共用後台/操作員選單選單顯示方式需定案

共用後台:零影響 ✅。後台對接的一直是 Unity 端(帳務、機率設定、遊戲紀錄),而這些在新架構全部留在 Unity——後台根本感覺不到遊戲畫面換成了 Web。遊戲紀錄由 Unity 依事件流落地,後台照原本方式讀。

操作員選單:功能照舊留 Unity,只有「顯示方式」要二選一(因為疊加式 WebView 蓋在 Unity 畫面上):

📎 協定規格書開放問題 3|pause(operator_menu) 流程已定義
U4. Define 設定(Unity 端)已解答

照舊,零改動。桑比框架、彩票機框架的 Scripting Define Symbols 全部維持——Unity 端從頭到尾沒有因為這次架構要改任何 define。唯一新增的是「機台模式」這類要讓 Web 也知道的旗標:由 Unity 經 init 下發(見網頁端第 6 題第三層),不要在兩邊各設一份。

📣 總結與請你拍板的兩件事:
12 題全數有解、無技術死路。現在卡流程的只有:
🔴 1. outcome 形式——建議模型 A(打中即問桑比)起步,需要你+機率+企劃定欄位
🔴 2. 操作員選單顯示——建議方案甲(隱藏 WebView 露出原生選單)+按鍵路由 Unity 單軌
這兩題定了,Web 端橋接層(mock 先行)馬上可以開工。
另:你的心智圖左緣有更上層節點被截掉,若還有其他分支沒入鏡,補張圖給我,我把缺的題目補進本報告。