(非保姆式教学,纯粹是书封影的碎碎念)
解耦非常重要,基本思想便是解耦。
我们需要将攻击主体,受击主体,攻击检测器和受击检测器区分开来
对此,可以用接口来实现。
我们可以创造攻击主体接口IHitResponder,受击主体接口IHurtResponder,攻击检测器接口IHitDetector,受击检测器IHurtBox,而后在具体的实现时对其进行继承和实现。
其中,两个检测器要能获得其主体,实现主体中的Responder。
我们可以创建一个中间层HitData,在攻击体和受击体之间进行数据传输。
上述描述可能比较抽象,详见下图:
我们在继承IHitDetector的检测器中建立一个检测方法CheckHit(),使用BoxCastAll对可能遇到的碰撞体进行检测,同时生成HitData文件,通过攻击检测器和受击检测器判断其是否符合游戏要求,若符合要求,则通过HitData调用两个主体中的Response方法,实现攻击和受击的反馈。
或许上述还是很抽象,这里直接放个数据结构思维导图
希望有需要的人能够看懂(
如果有更好的办法,请留言,书封影感激不尽