美文网首页
Buff控制

Buff控制

作者: APP4x | 来源:发表于2020-01-02 18:51 被阅读0次

    对于每个Buff,抽象出一个BuffBase类

    存储BuffData配置数据
    id、要显示的特效、持续时间、触发时间间隔、伤害值

    如何创建
    1.EntityBase里面有AddBuff方法
    2.通过BuffControl保存,需要添加的Buff_Id
    3.创建出BuffBase对象,在初始化的时候
    4.获取开始时间Time.realtimeSinceStartup+配置的时间就是结束时间
    5.创建Buff特效

    伤害计算:
    每一个BuffBase对象里面有计时器,在有效期内,一旦到达触发时间间隔,就触发一次伤害
    对象内会保存目标的EntityBase

    BuffControl是管理所有的Buff
    在Update里面:
    1.如果已结束的Buff,删除
    2.没结束的Buff,调用Update,进行内部的触发操作

    通过旋转道具触发BUFF:
    所有旋转的道具,都在人物的rotate节点下

    移动时控制人物根节点,旋转时旋转rotate节点
    获取方向也根据rotate节点控制

    所有旋转的道具,类似于弓箭传说的火箭、盾牌等等

    是一个prefab,里面有两个左右对称的mesh,一直在旋转
    当碰撞到敌人时,进行攻击

    如何转:
    在Update里面

    this._parent.localRotation = Quaternion.Euler(0f, this._parent.localEulerAngles.y + this.rotate, 0f);
    

    如何攻击:
    通过Collider,勾选isTrigger不影响正常移动
    OnTriggerEnter方法,根据layer进行碰撞,获取到目标Enity
    通过EntityManager获取是不是敌人,如果是的话,进行伤害计算

    相关文章

      网友评论

          本文标题:Buff控制

          本文链接:https://www.haomeiwen.com/subject/eqwooctx.html