在 Flutter 中打造流暢的 3D 遊戲與互動體驗,強大而精準的物理模擬是不可或缺的基石。rapier_physics 結合了 Rust 高效能物理引擎 Rapier3D 與 Flutter 多平台生態,支援 iOS、macOS、Windows、Android 與 Web。
今天我們很高興宣布 rapier_physics v0.5.3 正式發布!這個版本帶來了底層原生引擎升級、Web 平台切換防護以及建置管線的全面精簡。
🎮 線上即時體驗(Live Demo)
可以直接在下方即時操作體驗 3D 物理模擬與角色控制效果:
💡 提示:若無法正常顯示,您也可以直接點擊前往體驗 👉 線上展示網頁
✨ 0.5.3 核心更新亮點
1. ⚙️ 底層物理核心升級:Rapier3D v0.35.2
我們將底層原生 Rust 引擎依賴全面升級至最新的 rapier3d v0.35.2(以及碰撞檢測庫 parry3d v0.30.2):
- 提供更極致的物理運算效能與記憶體優化。
- 提升多物體堆疊、關節約束(Joints)與連續碰撞檢測(CCD)的穩定性與精度。
2. 🌐 Web/WASM 場景切換防護(修復 unreachable 崩潰)
在 Web (WebAssembly) 環境下,當使用者在多個 3D 物理場景間頻繁切換時,過往可能因 WASM 生命週期重複初始化導致舊控制代碼引發 unreachable 執行時期錯誤:
- 0.5.3 加入了全新的 WASM 重新初始化防護機制,確保在單頁應用(SPA)中動態切換、重建物理場景依然穩如磐石。
3. 📦 建置腳本與 Web 產物路徑重構
- 重構建置流程,讓 Web 相關產物直接輸出至
web/與example/web/。 - 移除了冗餘的
prebuilt/web目錄,使專案結構更乾淨、發布與測試流程更順暢。
4. 🧹 程式碼日誌清理
- 移除了
RapierWorld中的額外 Debug Print 調試輸出,讓開發者的 Console 保持乾淨清晰。
🌟 近期版本特色回顧 (0.5.0 ~ 0.5.2)
- 🏃 運動學角色控制器 (Kinematic Character Controller):支援 3D 角色物理導航、自動攀爬階梯、斜坡滑動、貼地吸附與推動動態物體。
- 🎯 場景查詢 (Scene Query API):完整的射線投射(
castRay、castRayAndGetNormal)與形狀投射(castShape),並支援自訂過濾器旗標(QueryFilterFlags)。 - 🛡️ 安全的生命週期管理:提供
dispose()` 與加固的 `destroy()` 流程,杜絕原生記憶體洩漏與重複釋放(double-free)。
📦 立即開始使用
在您的 Flutter 專案 pubspec.yaml 中新增依賴:
dependencies:
rapier_physics: ^0.5.3
或直接透過終端機安裝:
flutter pub add rapier_physics
歡迎前往 GitHub 查看更多 3D 互動範例(包含角色控制器、雙擺、牛頓擺、複合剛體與場景查詢):
👉 GitHub 專案庫:macbearchen/rapier_physics
沒有留言:
張貼留言