求助ParticleSystem被SpriteRenderer遮挡问题

我用SpriteRenderer做了一款类似饥荒的游戏,但是添加火焰的粒子特效会被SpriteRenderer遮挡,根据其他帖子给ParticleSystem所在节点添加了UiMeshRenderer之后,在场景编辑器里可以正确显示遮挡关系(粒子在SpriteRenderer前面),但是运行游戏以后,粒子始终会被遮挡,求助如何解决!

b72773ad159e86db254f83b0122986c

a5271d3e5d5fbbfa7e3f0109ac9af2c

目前采取了下下策。
给3d粒子特效单独分到一个layer,然后创建了一个相机赋予Render Texture,专门用来渲染3d粒子特效,但是给SpriteRender赋予这个Render Texture不生效,只能在渲染ui_2d的Canvas创建了一个Sprite并赋值Render Texture。
但是这样就变成2d粒子特效了。
希望有好的解决方案的大佬可以解答一下!

微信截图_20240220184126

是该这样弄,3d粒子和2dUI在两个分开的管线上面,可以不用创建renderTexutre,用两个摄像机就行,改一下Priority

渲染ui的相机Priority是最高的,ui相机只渲染ui_2d的层级,但是我把3d粒子节点改到ui_2d的层级,还是渲染不出来,不知道是不是因为ui相机绑定到canvas上的原因?ui相机只渲染canvas的ui,另一个3d相机负责渲染游戏世界,这个试了不行我才无奈用的rt

spriterender是3D世界里的话不是设置z就行了么?
如果sprite是UI上的而粒子是3D里的话,没特殊设置的话一般就是UI最前面了,肯定挡粒子了。
如果sprite和粒子都是UI上的话,理论上UIMeshRenderer可以与sprite任意排序的

除了ui交互按钮其他都是3d世界内的,3d是靠Sortings排序的,不是zIndex,我试过了3d粒子用Sortings无效

我试了下,
3D世界Particle与其他3D物体可以直观通过z(也可以是其他轴,取决于3D Camera指向)实现遮挡
可以试下3D世界添加SpriteRender(Experimental)

image
image

微信截图_20240227012924 不行啊,我就是3d世界,我把渲染模式设置成前向渲染了,不知道是不是这个原因

我找到原因了,给SpriteRenderer添加Sortings组件,就会导致这个问题,你可以试试

能通过z控制为啥还需要Sorting?

地图块y轴在一个平面,Sorting是用来控制地图块和地图块之间的关系的,多个地图块之间有重叠的部分,不用Sorting,重叠部分渲染出来有问题。
至于角色为什么加Sorting是因为地块加了Sorting就一定会渲染在角色上面,所以角色也只能加Sorting

地块是tiled咩?
不用y改用z控制可行么?