virtual public void AttackImplementTick() { if (my_unit.is_move_attack || (!my_unit.IsMoveState())) { if (target_unit == null) { target_unit = AttackAI.FindCanAttackTarget(my_unit); if (target_unit != null) { DoAttack(target_unit); } } else { if (target_unit.IsAlive()) { if (my_unit.IsCanAttack(target_unit)) { DoAttack(target_unit); } else { // 打不到,清空目标 target_unit = null; } } else { target_unit = null; } } } }
public void InitAI() { attack_ai = new AttackAI(); attack_ai.my_unit = this; // 攻击类型也有不同的组件, 有弹道,没弹道等 attack_ai.InitAttackComponent(); // // 根据类型增加是否有追击的组件 // if(can_pursue) // { // attack_ai.InitPursueTargetComponent(); // } // // // // revive_ai = new ReviveAI(); // revive_ai.my_unit = this; }
// 攻击类型决定的是否可攻击 public bool IsCanAttackByAttackType(BLUnitBase enemy_unit) { return(AttackAI.IsCanAttackByAttackType(this, enemy_unit)); }