Unity 可以在构建时和运行时执行静态批处理。通常,如果在构建应用程序之前游戏对象就存在于场景中,请使用编辑器在构建时对游戏对象进行批处理。如果在运行时创建游戏对象及其网格,请使用运行时 API。
使用运行时 API 时,可以更改静态批处理根的变换属性。这意味着可以移动、旋转或缩放构成静态批处理的整个网格组合。无法更改单独网格的变换属性。
要对一组游戏对象使用静态批处理,游戏对象必须符合静态批处理的条件。除了常见使用信息中所述的标准外,请确保:
DisableBatching 标签设置为 true 的材质。注意:要使用运行时静态批处理,还必须将网格设置为已启用读/写权限。
有关静态批处理性能影响的信息,请参阅性能影响。
可以在编辑器中在构建时启用静态批处理。
要在构建时执行静态批处理,请执行以下操作:
如果特定的静态网格满足常见使用信息中所述的条件,Unity 会自动将它们批处理至同一绘制调用中。
注意:如果在构建时执行静态批处理,Unity 不会在运行时使用任何 CPU 资源来生成静态批处理的网格数据。
为了在运行时将静态网格进行批处理,Unity 提供了 StaticBatchingUtility 类。静态 StaticBatchingUtility.Combine 方法将传入的游戏对象组合在一起,并为静态批处理做好准备。这对于在运行时以程序方式生成的网格特别有用。
与构建时的静态批处理不同,运行时批处理不需要启用静态批处理播放器 (Player) 设置。有关如何使用此 API 的信息,请参阅 StaticBatchingUtility。