UC武器系统之枪与子弹

 

1.

UCWeapon与UCWeaponRanged武器的本质区别是后者是需要子弹的,也就意味着后者在能否BaseAction时需要检查玩家的是否有弹药

image

刀是通过检测是否播放动画能知道自己是否应该攻击,但枪就不行了,因为枪在攻击之前是要把子弹刷出来的,因此UWeaponRange的BaseAction通知UCWeapon的PrivateBaseAction事件,具体武器重写这一事件,具体到UCWeaponCharGun是这样的

image

PrivateBaseTion事件里CharGun先刷出Projectil,再刷出UCShell,然后就不管了,毕竟枪的BaseAction是发出子弹,子弹才能伤怪,而不是枪

2弹壳的分析

子弹的实现是分成了弹壳(UCShell)与子弹(UCProjectil)的,

UCShell模型

image

弹壳的主要作用是模仿弹壳的弹跳,它最多弹跳6次,就消失了

image

这一大片的代码都是为了给Shell设置旋转及速度的,一个东西想要运动及旋转起来,UC的作法是给它加上

image

3子弹分析

子弹的核心是Hit事件,总体的逻辑是如果子弹没有打中bot怪,就对击中的物体模拟一个物理效果,并生成一个弹孔,如果击中了就由Bot怪的Hit事件处理,子弹就不理会了

image

imageimageimage

这时再回到CharGun,刷子弹的过程,首先是在枪口处给一个火焰粒子特效,模拟真实的枪

image  image

然后刷子弹,并禁止子弹伤到自己,

image

最后是把弹道画出来,这个效果是在运动中才能看出来

imageimage

最后谈一谈ShotGun的子弹,散弹枪子弹就是一颗子弹包含了多颗子弹而已,只需要在一个for循环里多刷几发子弹就好了,

image

 

-----------转载请标明出处

转载于:https://www.cnblogs.com/BlankEye/p/4248402.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值