Unity 2022.3.5f1中2D URP非Layer 0精灵受Global Light 2D照射变黑
针对你遇到的问题,给你几个精准的排查和解决步骤:
检查Global Light 2D的Sorting Layer Mask设置:
即使你选了“全部对象”,也要确认Mask里是否真的勾选了所有自定义排序层。有时候UI操作容易出现视觉误差,直接把Mask设为Everything,或者手动逐个勾选你创建的排序层,确保没有遗漏。核对精灵Renderer的Light Layer:
每个精灵的Sprite Renderer组件里有Light Layer选项,Global Light 2D的Light Layer Mask必须包含精灵所在的Light Layer才能照亮它。如果你的精灵用了自定义Light Layer,一定要在灯光的Mask里勾选对应层;嫌麻烦的话,统一把精灵和灯光的Light Layer设为默认层也能解决。检查URP 2D渲染器的层光照设置:
打开项目中的2D Renderer资源(在URP Asset的Renderer List中找到),进入Lighting板块,找到Per Layer Settings。确保你创建的所有自定义排序层都开启了Receive Global Illumination和Receive Shadow选项——如果某个层没开,用lit材质时就无法接收全局光。重置lit材质参数:
可能sprite-lit-default材质的参数被误改(比如Light Layer被限制)。新建一个sprite-lit-default材质实例,不要修改任何参数,给非Layer 0的精灵赋值,测试是否能正常受光。重建自定义排序层:
打开Edit > Project Settings > Tags and Layers > Sorting Layers,删除现有的自定义排序层后重新创建。极少数情况下,排序层的ID异常会导致光照系统无法识别,重建能解决这类隐性问题。
内容的提问来源于stack exchange,提问作者Giddy_Up

