2D Lighting
Unity版本:2021
安装URP包
使用Package Manager安装Universal RP包
安装好之后就能在Assets文件夹中创建URP渲染管线,
Create/Rendering/URP Asset(with 2d renderer)
新建后还会自动创建一个renderer 2d data文件,
用来放在URP Asset的Renderer List里的。
将Project Settings/Graphics/Scriptable Renderer Pipeline Settings设置为刚才创建的URP Asset文件
将渲染管线修改成URP Asset之后,
还需要将Sprite的材质修改为Sprite-Lit-Default
这样Sprite才能受到光照的影响。
通过Window/Rendering/Render Pipeline Converter对现有场景中的Sprite进行材质替换,
选择Convert Built-in to 2D(URP),
勾选 Material and Material Reference Upgrade 进行更新
这样所有Sprite的材质都被替换为Sprite-Lit-Default
按理来说Sprite的Material修改为Sprite-Lit-Default后,
就会受光照影响,如果没有Light的话,会变为全黑,
但是如果场景中Sprite没有变黑,
是因为没有加任何Light实例,
只有存在至少一个全局光照GlobalLight时,光照才能有效。
另外,在Hierarchy直接通过菜单创建的Light有时会自带一个Light配置脚本(导致不起作用),
需要额外添加Light 2D脚本才起作用,不知道是什么原因。
Light
完成URP的配置后,就能在Hierarchy中创建2D Light,
Unity提供很多种类的光源:
- Point Light 点光源
- Spot Light 聚光灯
- 可以调整角度
- Global 全局光照
- Sprite 贴图光照
- 能够根据提供的光照贴图添加光
- Freeform 自定义形状光
- 可以自定义光的形状,很好用!
这些光源都是可以调整影响图层的(Target Sorting Layers)
Normal Texture
Sprite还支持法线贴图
法线贴图通过光照能为2d物体带来3d效果: