我正在针对移动设备优化我的游戏。因此,少量批次非常重要。通过使用“帧调试”,我发现由于某种原因,即使节点是静态的并且据我所知具有相同的材质,也会对每个节点执行“绘制网格节点”命令。帧调试器表示对象不能批量处理,因为“对象具有不同的材质”。我不明白为什么以及如何解决这个问题。这些节点都基于它们的预制件。他们之间唯一不同的是他们的立场。请帮忙
每个节点的预制件:
经过 2 天的悲伤和观看 YouTube 上的每个图形表演教程后问题解决了。
基本上,我需要将每个 .material 代码更改为 .sharedMaterial,因为对于我来说未知的原因,统一在使用 .material 时创建了材质的副本,之后每个节点都获得了自己的材质。正因为如此,表现才如此糟糕。现在它可以工作了,我的直播质量也得到了提高,因为所有内容都进行了批处理,将绘制调用从 300 次减少到 10 次:)
我希望未来的读者能从中得到帮助!
如果您想更改材质的属性,则更改将应用于使用相同材质的所有对象,这意味着“共享”。因此,使用 MaterialPropertyBlock 将是您所需要的。