如何在使用Screen Space Overlay模式Canvas的Panel上方绘制线条
LineRenderer显示在UI后方的解决方案
方案1:修改Canvas渲染模式(最简单通用)
- 将Canvas的
Render Mode属性从默认的Screen Space - Overlay切换为Screen Space - Camera - 把场景主摄像机拖拽到Canvas的
Render Camera参数栏 - 调整Canvas的
Plane Distance数值,确保该数值大于LineRenderer与摄像机之间的直线距离,即可让LineRenderer显示在UI前方
方案2:调整渲染层级与队列
- 打开Unity的Tags & Layers设置,新建一个优先级高于UI默认Sorting Layer的层级,命名为
TopLine - 选中LineRenderer组件,将其
Sorting Layer设置为刚新建的TopLine,或保持同层级时把Order in Layer数值设置为高于UI对应组件的数值 - 如果上述调整无效,修改LineRenderer使用的材质:将材质Shader改为
Unlit/Transparent,手动把材质的Render Queue值设置为3001(UI默认渲染队列值为3000,数值越高渲染越晚,显示越靠上)
方案3:使用Render Texture嵌入UI层级(适合复杂UI排序场景)
- 新建一个Render Texture资源,再新建一个单独的摄像机,专门用来渲染LineRenderer对象
- 将新摄像机的
Target Texture参数设置为刚创建的Render Texture,调整该摄像机的位置、裁剪层保证只渲染需要的线条内容 - 在Canvas中需要显示线条的位置添加RawImage组件,将Render Texture拖拽到RawImage的
Texture参数栏,调整RawImage在UI中的层级即可自由控制线条与其他UI元素的前后关系
内容的提问来源于stack exchange,提问作者Muhammad Azeem
相关产品推荐
相关产品推荐

