需要修改默认的shader, 像UI-Default, Sprite-Default, 他们默认都没有开启深度测试, 也就是z坐标不参与层级显示(实际调了z坐标偶尔会有效果, 但那个是随机的, 不可靠),
所以需要先修改他们
# 去unity官网下载对应unity版本的buildin_shaders, 然后copy到项目下, 开启深度测试
UI-Default.shader
Sprite-Default.shader
# Image, Sprite, MeshRender分别使用不同的z坐标后,可以看到他们的层级可以正确显示
【开启了深度测试, 对合批有没影响?】
# ugui间还是可以合批
# ugui和SpriteRender的话本身就没法合批
【RectMask2D裁剪有影响吗?多个界面间的层级会乱掉吗?】
# 可以裁剪,但是多个界面间的层级会乱掉,这就要求自己去控制所有节点的z坐标,这个对于界面而言就麻烦了。所以这种方法还是不合适。