设计性能

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

设计性能意味着遵循一些最佳实践 在您构建 您的体验时。与找到和修复性能问题相比,设计性能早可以节省您大量的时间和努力。

低端设备

低端设备,特别是移动设备,由于存储空间不足,存在严重的内存限制,并且受到内存错误(OOM)的影响:

  • 如果您想要支持低端设备,请选择具有某些性能特性的基础设备集,在开发过程中对其进行测试,并注意帧率和内存使用率。当您在体验中发现问题时,请使用这些区域来确定您的设备的限制。

    例如,您可以测试一个体验使用 渲染

  • Roblox Studio 中的设备模拟器有助于检查外观比例和控制件,但不是准确的对于内存使用;当您在 Studio 测试体验时,它会运行服务器和客户端,因此内存使用率会增加。

更 generally地,在多种设备上测试可以帮助您检查体验是否在不同的图形质量级别上满足您的视觉和性能期望。 为了了解您如何在低端移动设备上优化您的体验的更多细节,请参阅实体世界建筑和脚本优化

Header image for Real World Building and Scripting Optimization.

流媒和传输

  • 实例串流 允许 Roblox 动态加载和卸下 3D 内容,是对大多数体验的最佳选择,尤其是大型体验。流媒体提高了加入时间、减少了内存 footprint 和提高了帧率。有关更多信息,请参阅改进性能

  • 将大型场景拆分为更可管理的场景,并使用传送将玩家之间移动。

材料和复制

  • 内置材料使用的内存远低于自定义材质,但可能无法满足您的艺术愿景。请尽可能使用材料,以节省内存预算为您的体验中心的材质。

  • 当您创建资产时,将它们转换为 包裹 。 使包裹成为您的工作流程的一部分可以帮助避免与不同ID的资产重复的问题,这可能会导致性能问题。

  • 当您添加网格和纹理时,使用并重用它们,而不是导入重复的副本。通过调整大小、旋转和交叉,您可以创建需要很少的<a href="https://developer.microsoft.com/en-us/microsoft-edge/meshes-and-textures# depression">画画</a>。 For more information, see <a href="https://developer.microsoft.com/en-us/microsoft-edge/meshes-and-textures# depression">Remove</a>。

透明度

  • 避免透明度值 0 (可见) 和 1 (隐藏) 之外。当您使用部分透明度时,请特别小心避免 高透明度过低)

脚本

  • 尽可能多地使用事件驱动代码而不是单行计算。 在 60 FPS 时,每个框架的总预算为 16.67 毫秒 (ms)。 即使是最小的每个框架计算也可以使用该预算的一大部分。

  • 找到将长跑的代码打破成管理可能的块。如果一块代码需要 100 毫秒才能执行,并且您每个框架都运行它,您的体验只能在 10 FPS 上运行。如果您决定在体验中每秒钟只运行代码一次,您的 59 个帧后 16.67 毫秒后…然后一个 100 毫秒后,这会导致抖

    相反,调查您如何解锁代验证码。也许您可以每个框架执行 5 毫秒的工作,使用 task.wait() ,并且每 20 个框架完成计算,而仍然保持 60 FPS。 多线程,也称为 Parallel Luau,也可以帮助。

  • 使用 RBXScriptConnection:Disconnect() 方法阻止函数在下次事件触发时不必要地调用。

  • 不要每次需要值时调用相同的方法。调用方法一次,存储值,然后在需要时覆盖它。

  • 不要将所有东西存储在 ReplicatedStorage 中。客户端会加载这个容器中的所有内容。 使用 ServerStorage 为客户端不需要访问的任何内容。