設計為了性能,意味著跟隨一些最佳實踐 作為你建立 您的體驗的過程。與找到並修復性能問題相比,設計為了性能早可以節省您很多時間和努力。
低端設備
低端設備,例如移動設備,有嚴重的記憶體限制,並且因為超出記憶體 (OOM) 錯誤而容易導致崩溃:
如果您想要支持低端設備,請選擇一些特定性能參數的基礎設備作為測試對象,在開發過程中仔細測試您在這些設備上的體驗,並且注意圖像幀率和記憶體使用率。當您在體驗中發現問題區域時,請使用這些區域來識別您的設備的限制。
例如,您可以使用 Render ( <
Roblox Studio 的裝置模擬器是檢查外觀比例和控制的工具,但不適合檢查記憶體使用;當你在 Roblox Studio 測試體驗時,它會執行服務器和客戶端,因此記憶體使用率很高。
更適合在各種設備上測試體驗是否符合您的視覺和性能期望,以及在不同的圖形品質等級下是否匹配體驗。有關更詳細的示例,請參閱真實世界建造和腳本最佳化。
流媒體和傳輸
將大型地點分為更可管理的地點,並使用 傳送 將玩家之間移動。
材料和複製
內置材料使用的內存儲存量比自訂材料少得多,但可能與您的藝術視頻不匹配。儘可能使用材料,以儲存內存預算,以便為您的體驗中央的材料提供保存。
當您創建資產時,將它們轉換為 包裹。將包裹作為您的工作流程的一部分可以幫助避免擁有不同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中的任何內容,以便客戶端不需要存取。