对于每个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获取是不是敌人,如果是的话,进行伤害计算
网友评论