在某些极少数情况下,您可能希望有意使某些 游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、相机、路径点等等。游戏对象的的功能由附加到它的组件来定义。 更多信息
参见 术语表 与 SRP Batcher 不兼容。例如,如果您想使用 GPU 实例化,而它与 SRP Batcher 不兼容。如果您想使用完全相同的材质渲染许多相同的网格,GPU 实例化可能比 SRP Batcher 更有效。要使用 GPU 实例化,您必须:
有两种方法可以从游戏对象中移除 SRP Batcher 的兼容性
提示:如果您使用 GPU 实例化而不是 SRP Batcher,请使用 分析器一个帮助您优化游戏的窗口。它显示了在游戏的各个部分花费的时间。例如,它可以报告渲染、动画或游戏逻辑中花费的时间百分比。 更多信息
参见 术语表 来确保 GPU 实例化比 SRP Batcher 对您的应用程序更有效。
您可以使手写着色器和着色器图着色器与 SRP Batcher 不兼容。但是,对于着色器图着色器,如果您经常更改和重新编译着色器图,那么使 渲染器不兼容 会更简单。
要使 Unity 着色器与 SRP Batcher 不兼容,您需要对着色器源文件进行更改
Properties
块中添加新的 材质属性 声明。不要在 UnityPerMaterial
常量缓冲区中声明新的材质属性。材质属性不需要做任何事情;只要有一个不存在于 UnityPerMaterial
常量缓冲区中的材质属性,就会使着色器与 SRP Batcher 不兼容。
警告:如果您使用着色器图,请注意,每次编辑和重新编译着色器图时,您都必须重复此过程。
您可以使单个渲染器与 SRP Batcher 不兼容。为此,请向渲染器添加一个 MaterialPropertyBlock
。