因为项目需求,做了一个适用于横版2D的光影系统,包括地上的光及墙上的光,效果如图
大体思路就是通过射线来检测光路,通过改变mesh网格来实现光路
首先,我定义了3个摄像机,
GroundCamera的Depth为-1,用于显示背景
ShadowCamera的Depth为0,用于显示阴影及阴影遮罩,clear flags设置为Dont Clear
BuidingCamera的Depth为1,用于显示其他物体,如人物,建筑
我先建立了阴影及其遮罩 ,如图,注意位置关系,遮罩需包含1个mesh组件及一个包含mesh组件的子物体
遮罩shader如下
Shader "Masked/Mask" {
SubShader {
// Render the mask after regular geometry, but before masked geometry and
// transparent things.
Tags {
"Queue" = "