[zhang273162308] Unity&Shader案例篇—光锥扫描效果
一、介绍
      在Unity2018.2.14上,一个实现展示敌方视线扇形光锥效果的Shader,其效果图如图所示,当然这种效果还只是实现了一个视线光锥的简单效果

当这个视线光锥开始扫描的时候,为了表达更加真实的效果,在出现扫描到障碍物的时候,会出现光线被遮挡的效果。如图所示:当光锥扫描到前面的障碍物的时候,会出现光线被遮挡的效果。

二、实现
1、简单半透明扫描扇形光锥Shader代码
游客,如果您要查看本帖隐藏内容请回复


这个Shader只是实现了静态的扇形扫描光锥效果,接下来还有实现光锥转动的时候扫描到障碍物时候的效果。
2、动态扫描
先将光锥的角度进行微分处理,每个单位角度的方向指定距离处得到一个点。由物体向该点发射一个射线,进行射线检测。射线碰到有碰撞体的物体就会得到一个碰撞点,然后将点与扫描半径的比值赋给Shader代码里的深度缓存数组  m_aDepthBuffer。如果没有碰撞到障碍物则赋值为-1。在Shader代码里
[mw_shl_code=applescript,true]                if (_SightDepthBuffer[index] > 0 && (1 - distcenter) > _SightDepthBuffer[index])
                                                        col *= 0;[/mw_shl_code]

进行判断的时候就会将碰撞到障碍物的后面的透明度都设置为0,这样就实现了光线被遮挡的效果。代码如下:
游客,如果您要查看本帖隐藏内容请回复

三、总结
1、实现了光锥扫描到障碍物的动态效果
2、不足之处是该扫描效果紧紧是水平面的效果,不能做到立体的效果
3、工程下载地址
游客,如果您要查看本帖隐藏内容请回复



来学习学习,打算做一个俯视视角的游戏需要这样的功能
来学习学习,打算做一个俯视视角的游戏需要这样的功能
  • 地板 hanxu
  • 2019-2-21 17:22:04
6666666666666666
  • 5# hanxu
  • 2019-2-21 17:24:45
不错,学习6666666666
  • 6# hanxu
  • 2019-2-21 17:26:50
学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习
这个好,谢谢楼主
6+66666666666666
多谢版主分享,很好的资源。
66666666666666666666666
厉害了这个 看着很厉害
超神之路啊超神之路啊超神之路啊超神之路啊超神之路啊超神之路啊超神之路啊超神之路啊超神之路啊
支持一下~~~~~~~~
谢谢楼主分享!!!
1234.. 17下一页