24. 执行卡牌效果
目标
当我打出一张攻击牌并指向敌人的时候,敌人会扣血
代码
攻击牌指向敌人
当我在拖动牌指向敌人的时候,鼠标指向的地方会判断是否有东西,并且东西的标签是否是 Enemy,是的话就标记为可执行,以及目标角色
因为只有指向 Tag 为 Enemy 的对象才有效果,所以要给敌人添加名为 Enemy 的 Tag
卡牌执行效果
使用卡牌的时候,就会执行 ExecuteCardEffects 方法,然后会触发 discardCardEvent。然后遍历卡牌下面所有的效果,并依次执行这些效果
这个 DamageEffect 代码如下
它的父类 Effect 代码如下
EffectTargetType 是个枚举类,它的代码如下
因此当我把卡牌指向敌人并且松开的时候,就会输出一句话,然后卡牌会丢弃掉
CardDeck 接收 DiscardCardEvent
DiscardCard 是我们之前就写好的逻辑,只不过要把参数 Card 改为 object
需要注意的地方
因为我们的摄像机只投射到 Card 和 Character 这两层
所以卡牌的 Layer 需要设置为 Card,敌人和玩家的 Layer 需要设置为 Character