一、在Materials文件下创建Shader Graph文件夹
- 然后右键creaet->shader->URP->Unlit Shader Graph(Occlusion Shader)
- 基于shader创建Material-Occlusion:点击刚刚创建的Shader,右键Create->Material(Occlusion)
二、双击OcclusionShader打开窗口
- 勾选Alpha Clip
- 添加新Node->Fresnel Effect:光圈效果,(替代人物原有的shader让player被遮挡后可以被看到)
- 更改颜色,在Inspector窗口后期可以修改:在左上角+Color变量,可在右边Node Setting中进行调整,将color拖拽出来
- 让color和Fresnel发生乘法的效果,可以将颜色加到其中:
Fresnel out添加Multiply(A4)——Color连接B(4)——Out(4)连接Fragment(Base Color(3)) - Fresnel有噪点的效果
creatNode(Dither)- 为其添加Float变量(Dither) - 输出到Alpha - 设置Float的值即可看出效果 - 设置阈值来控制Alpha
添加Float变量(AlphaThreshold)连接alpha threshold
- 左上角save Asset保存
三、Pipeline Setting 实现人物被遮挡时应用上面设置的材质
- 点击Pipeline Setting文件夹里的UniversalRenderPipelineAsset_Renderer
- inspector下点击 Add Renderer Feature -> Render Object
- 如图所示修改设置
支线
树木遮挡了鼠标射线解决方法
1、忽略射线:把所有树的Layer设置为Ignore Raycast
2、关闭树木的meshCollier