protected override IEnumerator CheckIfTargetWithinRange() { while (true) { currentTarget = AIAnalysis.GetClosestEnemy(skillUser.userStats.enemyEntitySets, transform, skillUser.userStats, false, layerMask); if (!skillUser.usingSkill && !goingRanged) { if (currentTarget && Vector2.Distance(transform.position, currentTarget.position) < rangeToChase && !chasing) { chase.target = currentTarget; chasing = true; } else if (currentTarget && chasing && Vector2.Distance(transform.position, currentTarget.position) < rangeToStopChase) { chase.target = currentTarget; } else { chasing = false; currentTarget = null; } } yield return(new WaitForSeconds(0.2f)); } }
protected void Start() { chase = GetComponent <AIChaseBehaviour>(); layerMask = 1 << LayerMask.NameToLayer("Level"); currentTarget = AIAnalysis.GetClosestEnemy(skillUser.userStats.enemyEntitySets, transform, skillUser.userStats, false, layerMask); StartCoroutine(CheckIfTargetWithinRange()); }
protected void Start() { chase = GetComponent <AIChaseBehaviour>(); layerMask = 1 << LayerMask.NameToLayer("Level"); initialPoint = transform.position; currentTarget = AIAnalysis.GetClosestEnemy(skillUser.userStats.enemyEntitySets, transform, skillUser.userStats, false, layerMask); moveTimer = timeToMoveAgain; attackTimer = timeToAttackAgain; StartCoroutine(CheckIfTargetWithinRange()); }
protected virtual IEnumerator CheckIfTargetWithinRange() { while (true) { currentTarget = AIAnalysis.GetClosestEnemy(skillUser.userStats.enemyEntitySets, transform, skillUser.userStats, false, layerMask); if (!skillUser.usingSkill && currentTarget) { if (Vector2.Distance(transform.position, currentTarget.position) < rangeToFight) { attacking = true; } else { attacking = false; } } yield return(new WaitForSeconds(0.2f)); } }