コード例 #1
0
    private void SetAgrUnit()
    {
        if (unitsInAgrRadius.Count == 0)
        {
            return;
        }

        AgrObject agrUnit = unitsInAgrRadius[0];

        Debug.Log("SetAgrUnit, EnemyBehaviour: agrUnit has: " + agrUnit.gameObject.name);
        foreach (AgrObject agrObject in unitsInAgrRadius)
        {
            if (agrUnit.agr < agrObject.agr)
            {
                agrUnit = agrObject;
            }
        }

        this.agrUnit = agrUnit.gameObject;
    }
コード例 #2
0
 public void CheckEnemyUnitsAround()
 {
     Collider[] colliders = Physics.OverlapSphere(transform.position, agrDistance, LayerMask.GetMask("Creature"));
     if (colliders.Length > 0)
     {
         foreach (Collider collider in colliders)
         {
             Creature creature = collider.gameObject.GetComponent <Creature>();
             foreach (string name in agrUnits)
             {
                 if (name == creature.creatureName)
                 {
                     AgrObject agrObject = new AgrObject();
                     agrObject.gameObject = creature.gameObject;
                     agrObject.agr        = (uint)Vector3.Distance(creature.transform.position, transform.position);
                     if (!(unitsInAgrRadius.Contains(agrObject)))
                     {
                         unitsInAgrRadius.Add(agrObject);
                     }
                 }
             }
         }
     }
 }