前言 有时候会用到,但有时候会忘记,记录一下方便自己也方便他人
博客将会介绍Unity设置不遮挡模型背景。
希望这篇博客对Unity的开发者有所帮助。
大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
欢迎点赞评论哦.下面就让我们进入正文吧 !
👉一、场景需要两个Canvas,两个摄像机 效果图如下
👉1.一个设置主UI canvas,一个背景Canvas 主Canvas设置如下图
只有背景的Canvas设置
主摄像机的设置如下图
看背景的摄像机
👉2.视频效果如下图 unity设置不遮挡背景视频
设置不遮挡背景视频
👉二、一个相机设置不遮挡背景 第一步:一个主摄像机
第二步:一个背景Canvas设置成第二个模式(只放一个背景图片其他什么都不放)设置如下
2-1、
3.其他的UI放其他的canvas即可,
不需要两个摄像机也是可以的
👉三、总结问题 👉3-1.使用第一种方法遇到的问题 第一种两个摄像机设置的不遮挡,打包PC毫无问题,打包WebGL就会遇到CPU是因特尔的话就没有问题 ,如果CPU是AMD就会出现画面重叠的问题 ,具体解决办法就只能使用第二种办法了,其他办法暂无
补充:
👉原理分析 渲染顺序控制
Unity的渲染顺序由多个参数共同决定,优先级从高到低依次为:
Camera Depth:相机的深度值越大,渲染越靠后。
Render Queue:材质中设置的渲染队列值,分为不透明(≤2500)和透明(>2500)队列。如果物体分属不同队列,透明队列的物体必然在不透明物体之后渲染,不受其他参数影响。
Sorting Layer 与 Order in Layer:同一队列内的物体,层级(Sorting Layer)越高或子顺序(Order in Layer)越大,渲染越靠后。
Z轴位置:在相同层级和顺序下,Z值更小的物体渲染更早(3D场景中,距离相机更近的物体Z值更小)。
遮罩与Stencil缓冲技术
遮罩形状与范围:若遮罩物体未完全覆盖背景,需调整其形状或大小,确保其覆盖目标区域。
Stencil遮罩:通过模板缓冲(Stencil Buffer)精确控制遮罩区域,仅允许模板值匹配的像素渲染。需在遮罩物体和目标物体上分别设置Stencil ID和遮罩逻辑。
透明材质与深度处理
透明混合(Alpha Blending):需关闭深度写入(ZWrite Off),通过混合因子与颜色缓冲计算最终颜色。此时渲染顺序必须严格从后到前,否则会导致错误遮挡。
深度测试(ZTest):开启时,远距离物体可能被近距离物体遮挡。若需强制显示,可调整ZTest模式(如设为Always)。
👉注意事项 参数冲突与优先级
若物体分属不同渲染队列(如一个在不透明队列,一个在透明队列),Sorting Layer和Order in Layer将失效,需优先调整Render Queue。
UI元素默认使用Transparent队列(RenderQueue=3000),若需显示在模型上方,需确保模型的RenderQueue≤2500。
多摄像机协同
使用多个摄像机时,通过调整Depth值控制渲染叠加顺序。例如,UI摄像机Depth设为更高值,使其渲染在模型摄像机之上。
设置摄像机的Culling Mask,仅渲染特定层,避免覆盖其他内容。
材质与Shader设置
透明物体需关闭深度写入,并确保材质使用Transparent队列,避免因深度缓冲错误导致遮挡异常。
粒子特效等动态元素需手动设置Particle System Renderer的Sorting Layer和Order in Layer,或通过脚本动态调整。
性能优化
避免频繁修改渲染参数(如动态调整Sorting Layer),可能引发批次中断(Batch Breaking)。
对静态物体启用“Static”标记,优化遮挡剔除(Occlusion Culling) 👉总结 设置比较简单,但又总是忘记,如果喜欢请点个关注吧,感谢!!!
本次总结的就是Unity设置不遮挡模型背景, 有需要会继续增加功能
如能帮助到你,就帮忙点个赞吧,三连更好哦,谢谢
你的点赞就是对博主的支持,有问题记得留言评论哦!
不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!