怀疑是引擎问题

引擎版本 2.1.3,2.2.2都是必现的,其他版本我没试过

新建一个hello world工程,在场景中添加一张图片。新建一个材质替换图片的默认材质。
在effect中的fs代码里添加如下一个判断
if(v_uv0.x > 0.5){
gl_FragColor = vec4(1, 1, 1, 1);
}
else{
gl_FragColor = color;
}

原本只是想把图片的右半边弄成白色,结果在编辑器中效果的确跟预想的一样,不过浏览器中预览死活没效果


到底是我代码写错了,还是什么原因呢?

运行环境会启用自动合批,UV会全部改变,现在只能自己把合批后的UV传进shader

可是这是个散图啊,uv也会变吗?
如果真的如你所说,那应该传怎样的uv到shader中呢?
感谢回复

你可以把图片的Packable属性去掉,就不会参与合图,UV也不会变,但是会增加drawcall
如果要计算新UV,你调试看一下spriteFrame用的texture,会发现是一张2048x2048的大纹理。
spriteFrame有个rect属性,就是在大纹理中的坐标,可以用这个算出新的UV

感谢大神的回复,给你10086个赞:+1: