在经过稍微浅一些的水域时,要将手中的武器抬高至水面以上。要实现这个功能不能像实现后坐力那样为武器Pitch轴增加旋转量,而是要在武器的Z轴上进行提高。
首先定义全局变量AddDrawZ,储存武器location提高量。
在function setpostion()中添加以下代码
if(holder.TouchingWaterVolume())//使用者是否触碰水域
AddDrawZ=fInterpTo(AddDrawZ,10,WorldInfo.DeltaSeconds,1.f);//逐渐将AddDrawZ从0增加到10
else
AddDrawZ=fInterpTo(AddDrawZ,0,WorldInfo.DeltaSeconds,1.f);//逐渐将AddDrawZ从当前数值减少到零。
最后DrawOffset.Z+=AddDrawZ;//设置DrawOffset的Z轴
注 DrawOffset是armmesh的坐标。
效果如下(有过渡效果)
![](http://imgsrc.baidu.com/forum/w%3D580/sign=876d51e518ce36d3a20483380af23a24/400d2b30e924b89975d9d40763061d950b7bf6da.jpg)
![](http://imgsrc.baidu.com/forum/w%3D580/sign=14328dc13bd3d539c13d0fcb0a86e927/7705dd24b899a90191d0f60910950a7b0308f5da.jpg)
首先定义全局变量AddDrawZ,储存武器location提高量。
在function setpostion()中添加以下代码
if(holder.TouchingWaterVolume())//使用者是否触碰水域
AddDrawZ=fInterpTo(AddDrawZ,10,WorldInfo.DeltaSeconds,1.f);//逐渐将AddDrawZ从0增加到10
else
AddDrawZ=fInterpTo(AddDrawZ,0,WorldInfo.DeltaSeconds,1.f);//逐渐将AddDrawZ从当前数值减少到零。
最后DrawOffset.Z+=AddDrawZ;//设置DrawOffset的Z轴
注 DrawOffset是armmesh的坐标。
效果如下(有过渡效果)
![](http://imgsrc.baidu.com/forum/w%3D580/sign=876d51e518ce36d3a20483380af23a24/400d2b30e924b89975d9d40763061d950b7bf6da.jpg)
![](http://imgsrc.baidu.com/forum/w%3D580/sign=14328dc13bd3d539c13d0fcb0a86e927/7705dd24b899a90191d0f60910950a7b0308f5da.jpg)
![](http://a.hiphotos.baidu.com/album/w=575/sign=5ba6a212f1deb48ffb69a1d9c51e3aef/a9d3fd1f4134970a9612285c97cad1c8a7865d5b.jpg?v=tbs)