public override bool checkProceduralPrecondition(GameObject agent) { CajaComponent[] cajas = FindObjectsOfType(typeof(CajaComponent)) as CajaComponent[]; CajaComponent closest = null; float closestDist = 0; //Busca una caja que no este en uso foreach (CajaComponent caja in cajas) { if (!caja.isUsed) { if (closest == null) { // first one, so choose it for now closest = caja; closestDist = (caja.gameObject.transform.position - agent.transform.position).magnitude; } else { // is this one closer than the last? float dist = (caja.gameObject.transform.position - agent.transform.position).magnitude; if (dist < closestDist) { // we found a closer one, use it closest = caja; closestDist = dist; } } Debug.Log(closest.name); } } targetCajaComponent = closest; if (targetCajaComponent != null) { target = targetCajaComponent.gameObject; } return(closest != null); }
public override void reset() { payed = false; targetCajaComponent = null; startTime = 0; }