Exemple #1
0
 public IAllyUnitState CheckChangeState(AllyUnit unit, PlayManager environment)
 {
     if (unit.GetPointTarget().HasValue)
     {
         return(new ClosestToPointTargetingAllyUnitState());
     }
     return(null);
 }
Exemple #2
0
    public void Update(AllyUnit unit, PlayManager environment)
    {
        if (unit.GetPointTarget().HasValue)
        {
            return;
        }
        float minDistance = Mathf.Infinity;
        Unit  target      = null;

        for (int i = 0; i < environment.enemyUnits.Count; i++)
        {
            float distance;
            distance = Vector3.Distance(environment.enemyUnits[i].transform.position, unit.transform.position);
            if (distance < minDistance)
            {
                minDistance = distance;
                target      = environment.enemyUnits[i];
            }
        }
        unit.SetTarget(target);
    }