private void UpdateMove() { if (CanMove() == false) { StopMove(); return; } var isRight = CheckTargetRight(); switch (_currentAiActionType) { case AiActionType.MoveNear: { var distance = CalcTragetDistance(); if (distance < DistanceMin) { _currentAiActionType = AiActionType.Idle; } else { Move(isRight); } } break; case AiActionType.MoveFar: Move(!isRight); break; default: StopMove(); break; } }
private void PlayAiAction(AiActionType type) { _currentAiActionType = type; switch (type) { case AiActionType.Idle: LookAtTarget(); break; case AiActionType.MoveNear: case AiActionType.MoveFar: UpdateMove(); break; case AiActionType.AttackCombo1: LookAtTarget(); AttackCombo(1); break; case AiActionType.AttackCombo3: LookAtTarget(); AttackCombo(3); break; case AiActionType.Appeal: LookAtTarget(); AppealNormal(); break; } }