Unity 2D中如何实现2D光照位于特定物体的前后方?
Unity URP 2D光照层级调整方案
检查2D Light与物体的Layer匹配
URP 2D的光照层级逻辑依赖Layer匹配:先确认2D Light组件的Light Layer和目标物体Sprite Renderer的Light Layer完全一致,只有同层的光照才会和物体产生正确的层级交互;同时要保证光照的Render Layer也和物体的Render Layer对应。修正Z轴与Sprite排序点的逻辑
URP 2D里Z值越小的元素显示越靠前,要让光照在物体前方,光照的Z轴数值必须小于物体的Z轴数值。另外注意物体Sprite Renderer的Sort Point设置:如果是Pivot,就以物体轴心的Z位置为准;如果是Center,则以Sprite中心的Z位置为准,别搞错参照点。确认材质与光照交互设置
目标物体必须用支持URP 2D光照的材质,比如Universal Render Pipeline/2D/Sprite-Lit-Default,Unlit材质不会接收2D光照,自然看不到光照在物体前后的效果。同时要勾选Sprite Renderer的Receive Shadows选项,否则光照无法正确作用在物体上。用Sorting Group统一层级
给目标物体和对应的2D Light都添加Sorting Group组件,设置相同的Sorting Layer和Order in Layer,然后在组内调整光照的Z轴位置。这样能把光照和物体绑定在同一个排序组里,避免场景中其他排序规则干扰层级关系。
内容的提问来源于stack exchange,提问作者AvaloN
相关产品推荐
相关产品推荐

