void Update() { distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); WeponSystem weponSystem = GetComponent <WeponSystem>(); currentWeponRange = weponSystem.GetCurrentWepon().GetMaxAttackRange(); bool inWeponCircle = distanceToPlayer <= currentWeponRange; bool inChaseCircle = distanceToPlayer > currentWeponRange && distanceToPlayer <= chaseRadius; bool outsideChaseRing = distanceToPlayer > chaseRadius; if (outsideChaseRing) { StopAllCoroutines(); weponSystem.StopAttacking(); StartCoroutine(Patrol()); } if (inChaseCircle) { StopAllCoroutines(); StartCoroutine(ChasePlayer()); } if (inWeponCircle) { StopAllCoroutines(); state = State.attacking; weponSystem.AttackTarget(player.gameObject); } }
private bool IsEnemyInRange(EnemyAI enemy) { float distanceToTarget = (enemy.transform.position - transform.position).magnitude; return(distanceToTarget <= weponSystem.GetCurrentWepon().GetMaxAttackRange()); }