Esempio n. 1
0
    public GameObject FindClosestTarget(Vector3 position, string tag)
    {
        // return nodes
        //    .OrderBy(o => (o.transform.position - position).sqrMagnitude)
        //   .FirstOrDefault();

        GameObject closest  = null;
        float      distance = Mathf.Infinity;

        foreach (GameObject go in nodes)
        {
            // verificar si el gameobject no esta asignado

            CoverNode temp = go.GetComponent <CoverNode>();

            if (temp != null)
            {
                if (temp.tag == tag)
                {
                    if (temp.isOccupied())
                    {
                        continue;
                    }

                    Vector3 diff        = go.transform.position - position;
                    float   curDistance = diff.sqrMagnitude;

                    if (curDistance < distance)
                    {
                        closest = go;

                        distance = curDistance;
                    }
                }
            }
        }

        return(closest);
    }
Esempio n. 2
0
    public GameObject FindFreeNode(Vector3 position)
    {
        GameObject free = null;

        foreach (GameObject go in nodes)
        {
            // verificar si el gameobject no esta asignado

            CoverNode temp = go.GetComponent <CoverNode>();

            if (temp != null)
            {
                if (temp.isOccupied())
                {
                    continue;
                }
                else
                {
                    free = go;
                }
            }
        }
        return(free);
    }