設計以獲得性能

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

設計為了性能,意味著跟隨一些最佳實踐 作為你建立 您的體驗的過程。與找到並修復性能問題相比,設計為了性能早可以節省您很多時間和努力。

低端設備

低端設備,例如移動設備,有嚴重的記憶體限制,並且因為超出記憶體 (OOM) 錯誤而容易導致崩溃:

  • 如果您想要支持低端設備,請選擇一些特定性能參數的基礎設備作為測試對象,在開發過程中仔細測試您在這些設備上的體驗,並且注意圖像幀率和記憶體使用率。當您在體驗中發現問題區域時,請使用這些區域來識別您的設備的限制。

    例如,您可以使用 Render ( <

  • Roblox Studio 的裝置模擬器是檢查外觀比例和控制的工具,但不適合檢查記憶體使用;當你在 Roblox Studio 測試體驗時,它會執行服務器和客戶端,因此記憶體使用率很高。

更適合在各種設備上測試體驗是否符合您的視覺和性能期望,以及在不同的圖形品質等級下是否匹配體驗。有關更詳細的示例,請參閱真實世界建造和腳本最佳化

Header image for Real World Building and Scripting Optimization.

流媒體和傳輸

  • 實例串流 可以讓 Roblox 動態載入 3D 內容,並且是一個很好的選擇來大多數體驗,特別是大型體驗。串行會改善加入時間、減少記憶體腳印和提升幀率。有關更多資訊,請參閱改進性能

  • 將大型地點分為更可管理的地點,並使用 傳送 將玩家之間移動。

材料和複製

  • 內置材料使用的內存儲存量比自訂材料少得多,但可能與您的藝術視頻不匹配。儘可能使用材料,以儲存內存預算,以便為您的體驗中央的材料提供保存。

  • 當您創建資產時,將它們轉換為 包裹。將包裹作為您的工作流程的一部分可以幫助避免擁有不同ID的重複資產,這可能會導致履約問題。

  • 當你添加網格和材質時,使用並重用它們,而不是匯入重複的副本。通過調整大小、旋轉和交錯來創建需要很少的 圖畫呼叫 的豐富、多樣化的環境。 為了更多資訊,請參閱 移除複製的材質

透明度

  • 避免透明值 0 (可見) 和 1 (隱藏) 之外的值。當您使用半透明時,請特別小心 高透明度

腳本

  • 隨時可能,請寫事件驅動代碼而不是每秒條畫面的計算。在 60 FPS 時,每個條畫面的總經費是 16.67 毫秒 (ms)。即使是看似小的條畫面計算也可以使用這個經費的一大部分。

  • 尋找斷長時間執行的代碼成為可管理的塊。如果一個代碼需要 100 毫秒才能執行,並且你每個框架都執行它,你的體驗只能在 10 FPS 執行。如果你決定每秒運行代碼一次,並且體驗通常會在 60 FPS 運行,你的代碼將在 16.67 毫秒後到達一個

    反而,調查如何您可以斷開代碼。也許您可以執行每個框架 5 毫秒的工作,使用 task.wait() ,並且在每 20 秒進行完成的計算,而仍然保持 60 每秒的速射擊。 多線程,也稱並行 Luau,也可以協助。

  • 使用 RBXScriptConnection:Disconnect() 方法來防止函數在下次事件發生時不必要地呼叫。

  • 不要每次需要值時都呼叫相同的方法。呼叫方法一次,儲存值,然後在需要時覆蓋它。

  • 不要將ReplicatedStorage中的所有內容存儲在 ServerStorage 中。客戶端會載入這個容器中的所有內容。 而是會載入Class.ServerStorage中的任何內容,以便客戶端不需要存取。