Пример #1
0
 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));
     }
 }
Пример #2
0
 protected void Start()
 {
     chase         = GetComponent <AIChaseBehaviour>();
     layerMask     = 1 << LayerMask.NameToLayer("Level");
     currentTarget = AIAnalysis.GetClosestEnemy(skillUser.userStats.enemyEntitySets, transform, skillUser.userStats, false, layerMask);
     StartCoroutine(CheckIfTargetWithinRange());
 }
Пример #3
0
 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());
 }
Пример #4
0
 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));
     }
 }