Unity实现战争迷雾效果 unity 战争迷雾插件_unity3d

EasyFogofWar是一款非常简单易用的战争迷雾插件,完全开源,极易扩展,高效低耗,不管win还是手机端,都兼容并流畅运行。


使用教程


首先导入插件。

Unity实现战争迷雾效果 unity 战争迷雾插件_Time_02

文件很少,一个demo,一个插件资源文件夹。

把唯一的prefab拖进场景,设置prefab上的ManageFog参数。

Unity实现战争迷雾效果 unity 战争迷雾插件_unity3d_03

参数:

FogRes :迷雾的分辨率,值越大,分辨率越高,迷雾越细致精确,当然也会占用更多的资源,实测256足够。具体根据自己的需求来定。

BrushSize:刷新迷雾的单位大小,值的大小相当于人的视野,值越大,看的更远。注意,这个参数受上面FogRes参数影响。

Timegap:刷新迷雾的时间间隔,即每隔Timegap时间会更新一次单位周围的迷雾。值越小,越平滑,也越耗。

Disgap:刷新迷雾的距离间隔,即单位移动的距离超过这个值才会刷新,静止的物体不会刷新,如值为1,即单位移动超过1才会刷新迷雾。

FogColor:迷雾颜色,注意这个颜色值包括alfa,可以设置半透明迷雾等。


再来看看ManageFog这个GameObject,是一个单面的Plane,改scale覆盖场景,建议大小要大于场景大小,因为在迷雾边缘的识别还不是很准确。

Unity实现战争迷雾效果 unity 战争迷雾插件_Time_04


通过Component-EasyFogofWar-FogItem或者从文件夹EasyFogofWar-scripts-FogItem给需要刷新迷雾的单位添加组件,来标记迷雾单位。

Unity实现战争迷雾效果 unity 战争迷雾插件_unity3d_05

添加此代码的物体都会自动刷新其周围的迷雾。

做到这里迷雾已经做好了,接下来再加一个相机单独渲染此迷雾的layer即可。

比如复制你的主相机,将其作为主相机的子物体,把Camera的CallingMask参数改为迷雾的layer就行了。


demo中有做好的例子。

总结一下,整体流程是这样:导入插件后把prefab拖进来,调整参数和大小,把你控制的移动单位标记为迷雾刷新单位,新建相机单独渲染此迷雾。是不是很简单!

Unity实现战争迷雾效果 unity 战争迷雾插件_自动刷新_06

Unity实现战争迷雾效果 unity 战争迷雾插件_Time_07