zoukankan      html  css  js  c++  java
  • UC分析-武器系统之子弹获取

    UC的主角是一个左手拿刀,右手拿枪,自带时间控制BUFF的高手,有枪就得有子弹,UC中获取子弹有三种方式

    LevelBP里设置子弹

    image

    捡起ShotGun时会给两发子弹,最常用的是在一个箱子里呆着,会最高给3发子弹,

    image

    这也是要分析的一种给子弹方式,这个盒子是一个普通的BP,带有一个Volume在层次结构上,这样就可以检查玩家是进入与离开

    image

    EventGraph里处理了几个事件,BeginOverlap/EndOverlap/Tick,

    image

    BeginOverlap事件最重要的是设置CharInVolume为true,这样Tick事件里才会认为玩家在box里,EndOverlap事件对应就是清掉这个标志

    Tick事件,主要就是做三件事,把Box里的子弹数目绕向玩家、加子弹、处理时间效果,这里只介绍加子弹

    image

    加子弹的条件时Box没有被destroy及玩家在box里,其次是检查子弹是否已经加满,默认是加3颗

    image

    最后玩家必需要待上一段时间才能加子弹,

    image

    上面这段BP代码翻译成数学是这样一个公式(delta / GTD + AT) > AI如果为真就加子弹,通俗一点的话说就是假设1秒钟加子弹,那玩家在每一帧都会累计AT的值,当大于AI时就加子弹了

    image

    然后就是调用character里的函数AddAmmoToGun,ActionCounter加1 ,AT清0继续累计,盒子的弹药数量减1并显示,

    MyCharacter的函数AddAmmoToGun,

    image

    很清楚,它是调用范围类武器加子弹,但这里关心的是通知了AddAmmoEvent事件,这个事件是用来通知玩家头上的TextRender显示一些提示性文字的

    最后就是HUD里是怎么显示弹药的,

    image

    这时因为UMG里控件绑定一个GetText0函数

     image

    GetText0从玩家身上获取弹药,然后就是拼装字符串

    image

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

  • 相关阅读:
    AtCoDeer and Election Report
    乒乓球
    dp(装箱)
    《非你莫属》面试者现场跟面试官用英文对话,一口流利的英语口语厉害了
    冬天喝酸奶,可以加热吗?冬天喝酸奶,这4个方面要注意
    滑县两个富豪打赌,一人吃了一泡狗屎
    为什么外国富豪都喜欢捐光所有财产
    发的微博有敏感词
    社交网络
    怎么把word中的文字拉细变瘦长
  • 原文地址:https://www.cnblogs.com/BlankEye/p/4248249.html
Copyright © 2011-2022 走看看