コード例 #1
0
    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);
    }
コード例 #2
0
 public override void reset()
 {
     payed = false;
     targetCajaComponent = null;
     startTime           = 0;
 }