網格物理概觀
在 Mesh 體驗中,物理仿真是啟用吸引人的動態內容的關鍵。 為了為 Mesh 參與者提供高品質的共用物理體驗,並提供開發人員在建立自定義內容方面的生產力工作流程,我們已建立 Mesh 物理 系統。 網格物理是以本機權威模擬為基礎,因此會產生非常簡單的架構。 用戶端上不需要伺服器端邏輯和特殊邏輯。 最重要的是,這種方法會讓每個玩家與其環境互動,即使連線到高延遲網路,也會產生非常回應和低延遲的體驗。
分散式物理模擬
網格物理會同步處理剛性主體的位置,而且應該立即運作,假設所有用戶端共用相同的場景。 大部分的 Unity 物理特徵(例如,剛性體、碰撞器、材質和條件約束)都會同步處理,而不需要額外的開發人員投入:
注意:
- 只有固定的體位置與方向會與插補同步
- 必須避免離散狀態變更(例如,可中斷的條件約束)和觸發程式事件
每個客戶端都會負責模擬某些主體,稱為分散式模擬 擁有權。 當玩家觸碰固定主體時,模擬擁有權會立即轉移,以允許低延遲互動。 對於鄰近主體,物理同步處理引擎會執行本機預測、插補和自動擁有權轉散發,以將視覺成品降到最低。
網格物理提供互動和其他物理相關功能,例如:
- 各種領域,物理影響身體內部(浮力,重力)
- 各種元件來修改個別身體的行為(磁力、粘性、可擲回)
- 將主體重設為其啟動位置的能力(選擇性場景清除)
- 使用網格模擬 支援播放模式,以測試上述功能的多使用者
以下是您可以使用 Mesh Physics 功能執行的更多工作:
允許參與者抓取和攜帶物件。
控制重力如何影響物件。
製作物件「黏性」—它會貼在所點擊的任何專案上。 範例:向飛鏢板扔一個飛鏢,將圖片附加至牆上。
新增與物理主體互動的自動播放動畫。
允許參與者重設物件(例如,重設棋盤,或在物件分散后清理房間)。
當對象進入觸發程式碰撞器時引發事件。
建立內含專案欄位。 物件會保留在欄位的界限內。
控制物件的速度。
控制物件的浮力—例如,讓船隻和其他海上物體「浮動」。
控制物件的角速度。
建立爆炸,導致附近的物件向外或特定方向移動。
建立具有預先定義速度的「彈跳」物件。
將物件傳送到新的位置和 (選擇性) 新的旋轉。
詞彙
在整個網格物理文章中,“body”被當作“硬體”的速記使用。