예제 #1
0
 public void HandleUnitAttack(Transform target)
 {
     if (target != null)
     {
         DebugHandler.Print($"Player Unit target Aquired! ({target.ToString()})");
         aggroTarget = target;
         aggroUnit   = target.gameObject.GetComponentInChildren <UnitStatDisplay>();
         hasAggro    = true;
     }
 }
예제 #2
0
        private void CheckForEnemyTargets()
        {
            rangeColliders = Physics.OverlapSphere(transform.position, baseStats.aggroRange);

            for (int i = 0; i < rangeColliders.Length; i++)
            {
                if (rangeColliders[i].gameObject.layer == UnitHandler.instance.pUnitLayer &&
                    Vector3.Distance(rangeColliders[i].gameObject.transform.position, transform.position) <= baseStats.aggroRange)
                {
                    aggroTarget = rangeColliders[i].gameObject.transform;
                    aggroUnit   = aggroTarget.gameObject.GetComponentInChildren <UnitStatDisplay>();
                    hasAggro    = true;
                    DebugHandler.Print($"Target aquired distance of ({distance = Vector3.Distance(aggroTarget.position, transform.position)})! {aggroTarget.transform.ToString()}");
                    break;
                }
            }
        }