记录一次静态合批失败原因:

       因为项目中场景涉及到了变色,使用的方式是同一shader改变,所以需要获取Material改shader值。然后导致实例化了一份material如下图 

Material (Instatnce) 导致合批失败

Material (Instatnce) 导致合批失败

这种获取方式会导致实例一份material,FrameDebug上的表现就是:

Material (Instatnce) 导致合批失败说是拥有不同的materials。

解决思路,不去获取material导致实例材质,以下两种解决方案:

1 : 不通过.material 获取材质,使用.sharedMaterial 获取材质。

     缺点:更改的是资源文件的shader值,也就是说,所有引用这个这个材质的物体,都会发生改变(重新进场景要重新赋初始值)

2: 通过 MaterialPropertyBlock (属性块)来改变,具体操作如下:

       Material (Instatnce) 导致合批失败

Material (Instatnce) 导致合批失败

 

相关文章: