可以在帧调试器 (Frame Debugger) 窗口中检查 SRP 批次的状态。每个 SRP 批次 (SRP Batch) 都显示了 Unity 使用的绘制调用次数、Unity 附加到着色器的关键字以及 Unity 未将该绘制调用与上一个绘制调用一起进行批处理的原因。
要检查 SRP 批处理程序 (SRP Batcher) 批次的状态,请执行以下操作:
在以下示例中,原因是:节点具有不同的着色器。这意味着该 SRP 批次的着色器与上一个 SRP 批次中的着色器不同。由于 SRP Batcher 使用不同的着色器,因此 SRP Batcher 创建了一个新批次。如果多个 SRP 批次的绘制调用数量偏少,通常意味着项目使用了太多着色器变体。
如果你要编写自己的可编写脚本渲染管线,而不是使用通用渲染管线或高清渲染管线,那么尽量编写一个使用最少数量关键字的通用多用途着色器。这是最优的做法,因为您可以使用任意数量的材质属性。