Unity 2D光照(2D Light)和阴影(Shadow Caster 2D)

前言

在上一篇我们简单了了解了Unity 2D动画的实现,在这一篇中,我们来学一下Unity的2D Light,给我们的2D动画添加上光照效果,简单的效果图如下:

首先先分享一个B站上别人翻译了的视频:https://www.bilibili.com/video/BV1Y4411g7wc?t=440 视频介绍的很详细了。

Unity的2D Light是在2019.2版本之后才有的,因此首先要保证自己的Unity版本是2019.2或者更新。由于自己现在工程是2019.3的,所以就按照新版本介绍啦。(注:Shadow Caster 2D也2019.3版本才有的组件)

URP的官方文档:https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.1/manual/index.html

 

图片设置

前面场景里面只有孤零零的一只猫,现在我们给他加一个背景上去,大家可以根据自己的喜好添加。

在Sprite Renderer中,我们添加两个新的Layer,分别叫Background和Character,给背景图的Sorting Layer设置为Background,猫咪的设置为Character(设置这个的原因后续会讲解到)

初步效果如下:

 

环境配置

我们先打开Window->Package Manager窗口,下载Universal RP(URP,2019.3版本新功能),2019.2版本的话下载Lightweight RP(LWRP)。

添加好之后,我们会发现在创建灯光的选项中新增了2D选项,但是都是置灰的。

此时我们需要设置下URP,首先我们在Project面板右键Create一个Pipeline Asset(取名为:URPAsset)和一个2D Renderer(取名为:2DRendererData)

选中LWRPAsset,将其Renderer Type改为Custom,并将我们生成的2DRendererData拖上去。

       

然后在Edit->Project Settings中,在Graphics的设置中,将我们的Asset拖上去即可,此时我们就可以创建2D Light了。

 

注:此时添加2D Light,对我们图片不会产生影响,并且图片即使没有灯光,依旧是亮着的(但是重新拖Sprite到场景中效果就正确了)。这是因为我们在之前环境下生成的Sprite Renderer自动填充的Material使用的Shader不受光照影响。我们可以在工具栏Edit下进行升级

不受光照影响:       受光照影响:

此时我们摄像机看见的就全黑了,因为我们还没有添加光照。

 

灯光设置

先简单的介绍下现有的几种2D Light:

Freeform Light 2D

我们可以通过Edit Shape自行定义各种形状的灯光。在Inspector面板中可以定义灯光颜色强度,边缘的衰退效果等。

其中需要强调的是Target Sorting Layer,也就是该灯光作用的图层。由于最上面图片设置的时候,我们设置了新的Layer,所以灯光这我们也需要选择下,否则依旧是一片漆黑。

Sprite Light 2D

可以通过设置Sprite来定义灯光的形状。

Parametric Light 2D

一种多边形的灯光,我们可以通过设置Sides来设置其边数。

Point Light 2D

点光源,同时我们可以将其设置成扇形光源,可以用于实现阳光照射的效果。

Global Light 2D

全局光照,可以通过设置光照强度颜色这些参数,进行全局的影响。

 

介绍完几种光照后,我们就开始为我们的场景添加自己想要的光照效果即可。由于很简单,这边就不过多介绍了。

 

设置阴影

首先给2D灯光设置阴影效果是2019.3版本的新功能,我们需要先给会产生阴影的灯光设置一下阴影强度(Shadow Intensity)。然后给我们会产生阴影的物体(也就是小猫咪)添加一个Shadow Caster 2D组件。

添加好之后发现也有个可编辑Shape,灯光会在照射到这个Shape后产生阴影。

     

Use Renderer Silhouette是否将Renderer的轮廓作为阴影计算的一部分
Casts Shadows是否开启阴影
Self Shadows是否开启自身阴影

关于Use Renderer Silhouette和Self Shadows的搭配,文档中有个简单的例子,这里就贴一下。

 

注:由于我们的猫咪是有动画的,但是这种方式添加的阴影并不会因为播放动画时,图片的变形而动态的更新新的阴影。

  • 20
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值