在世界空间渲染模式下在画布中添加了一些UI元素。对于激光指针而言,UI元素的遮挡是一个问题。这里的指针是由行渲染器生成的。下面是一些已经尝试过的东西,但是指针仍然没有正确地封闭画布。
源代码来自统一,是可用的这里。没有需要修改的相关脚本。似乎一个设置或着色器更改可能只需要在这里。

发布于 2020-11-25 17:24:54
可以编写一个定制的着色器来测试深度,但是这将是一个非常昂贵的着色器--看起来你想在VR上使用它,我建议不要这样使用它。
过度设计的解决方案,仍然不是很便宜,但更便宜的解决方案是将UI渲染到相机上,渲染到RenderTarget中,并将输入传递给UI。
很少有人注意到:
Camera.Render()更新UI更新。编辑:编辑后的问题要简单得多!
UI是在RenderQueue = 3000上呈现的,您可能有未点亮的材料作为行渲染器,其中有RenderQueue = 2450。
您需要为您的行渲染器创建一个带有RenderQueue >= 3000的材料。
如果您不想创建新材料,可以从代码中更改它。
// use this with caution! As this can affect other materials when run in editor!
meshRenderer.material.renderQueue = 3100;编辑2:如果您安装了URP,您可能需要将默认材料更改为URP。默认材料使用遗留着色器,这会引起线渲染和用户界面问题。
https://stackoverflow.com/questions/65009391
复制相似问题