休眠系統

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

每個 組件 在 Roblox 引擎中對應於一個單一的 剛體。每個剛體的位置和速度描述了它的位置以及它的移動速度,而引擎的主要任務之一就是更新每個組件的位置和速度。

組件可以通過 機械約束移動約束 連接在一起,以形成汽車或飛機等機械裝置。隨著機械裝置中組件和約束的數量增加,模擬該機械所需的時間也會增加。幸運的是,當 休眠系統 確定引擎可以跳過不移動的組件的模擬時,這一增長會得到抵消。

休眠狀態

每個組件可以處於三種狀態之一:清醒休眠檢查休眠

清醒

清醒的組件正在移動或加速,因此會被模擬。組件從 休眠檢查休眠 中的情況進入此狀態,還有 額外的清醒情況

休眠

休眠的組件既不移動也不加速,因此不會被模擬。

通過檢查其 線性速度旋轉速度 來確定組件是否為靜止。如果其線性速度小於 線性速度 閾值且其旋轉速度小於 旋轉速度 閾值,則該組件被認為是靜止的。

在某些情況下,僅檢查不移動將導致組件錯誤地進入休眠狀態。例如,如果一個球垂直向上拋出,當它達到最大高度時它的速度接近於零,使它成為候選者進入休眠狀態並永遠不會掉回來。為了解決這種情況,引擎會在其 線性加速度旋轉加速度 大於 線性加速度旋轉加速度 閾值時,將組件認為正在加速,並將防止該組件進入休眠。

檢查休眠

與至少一個 清醒 鄰近組件共享約束的非移動組件將進入 檢查休眠 狀態,並且不被模擬。在每個世界步驟中,檢查休眠的組件檢查以下條件:

如果其中任何條件為真,或者在任何 額外的清醒情況 下,檢查休眠的組件將進入 清醒 狀態。

閾值參考

以下表格提供了用於確定一個組件是否移動或加速的各種速度和加速度閾值。

閾值狀態變化
線性速度0.33 studs/s清醒休眠
旋轉速度0.42 studs/s清醒休眠
線性加速度0.24 studs/s²清醒休眠
旋轉加速度0.24 studs/s²清醒休眠
鄰近線性速度0.48 studs/s檢查休眠清醒
鄰近旋轉速度0.59 studs/s檢查休眠清醒
清醒線性加速度16.9 studs/s²清醒休眠
清醒旋轉加速度16.9 studs/s²清醒休眠

旋轉速度和加速度閾值反映了位於組件邊界球(包含所有組件的球體)上的一個點的速度和加速度,該點隨著組件的剛性運動。

動作關節

有時開發者希望通過 動作關節,這是一種施加力或運動以驅動連接部分的約束,來以非常慢的速度移動部分,例如使用 HingeConstraint 並將 Motor 應用於其上。為了支持這些場景,與動作關節連接的組件使用更嚴格的休眠速度閾值。這會延遲這些組件進入休眠的時間,允許緩慢、可控的運動而不會讓物理系統過早地將它們放入休眠。

以下被認為是動作關節:

額外的清醒情況

除了 檢查休眠休眠 中列出的情況外,當以下情況發生時,組件會進入 清醒 狀態:

調試可視化

在遊戲測試期間,您可以通過在 3D 視口右上角的 可視化選項 小部件中切換 清醒部分 來可視化組件的休眠狀態。

3D 視口的特寫視圖,右上角顯示了可視化選項按鈕。

啟用後,模擬的部分將根據其當前的休眠狀態進行標記,具體來說,清醒 的部分標記為紅色,檢查休眠 的部分標記為橙色,休眠 的部分則沒有標記。

模擬部分根據其當前的休眠狀態以顏色標記
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。