如何使用Tasharen Fog of War插件制作战争迷雾

发表于2016-04-20
评论1 4.4k浏览
 先上效果图:

 
  引用游戏蛮牛每周五专家在线2016年4月15日第40期专家在线 71楼问答:
Question from caedmom:
  像英雄联盟的战争迷雾有哪些方法可以实现,哪个方法的效果最优呢?网上找的方法和视频上指导的方法的迷雾边缘都很明显啊,还请王总指教哈~

Answer from Mr Wang:
 · 可以使用Tasharen Fog of War来实现 
 · 使用Projecter来实现(Projecter的正交投影空间是方形的,对于一些在XZ平面是比较狭长的场景,Projecter的正交投影空间包裹得就不是很严密,这就会造成FogOfWarRTT大量的像素浪费,也就是说FogOfWarRTT有相当大的一部分像素是没有用的,所以要自己实现正交投影矩阵)
接下来下载使用Tasharen Fog of War1.0插件,做了个小demo,写帖子时参考了这篇文档,感谢!
1、导入插件
  
              

2然后我们把插件自带的Fog of War预设拖入场景,接着创建一个地形,和两个Cube,一个是CubeRedEnemy(以下简称Enemy)为红色,一个是CubeGreenHero(以下简称Hero)为绿色(颜色不重要),我们Hero移动来观Enemy的显现,接着让MainCamera俯Hero。

  

  关于移动脚本大家可以自己编写简单的,也可以参考下我这个比较繁琐的脚本,大家使用时一定要记得给地形Terrain、CubeGreenHero、CubeRedEnemy分别打标签为Ground、Player、Enemy,否则你点不动哦~嗯。。其实是从四月训练营(点击跳转)demo直接拖过来用的,大家如果想参考可以回复支持一下。
3添加插件中的脚本:
  MainCamera:添加 FowEffect.cs – 使得摄像机得到渲染 
  Hero:添加 FOWRevealer.cs –控制主角可见范围 
  Enemy:添加 FOW Renderers.cs –控制阴影中是否可见
  然后,将Hero下挂在的FOWRevealer脚本属性中Line Of Sight Check改为Every Update()

  

4运行,然后再Inspector面板移动方块,你会发现已经有战争迷雾效果了,并且靠近Enemy时,Enemy会显现,远离时Enemy会消失在迷雾中 .(unity5.0中有Bug,可以尝试在Edit的Project Setting的player中把DX11取消勾选)


   最后附上插件下载地址:链接:http://pan.baidu.com/s/1c4uwX4 密码:yaew,感谢支持!

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引