Esempio n. 1
0
    public void FindMyNeighbours()
    {
        CrossRoadMeta     meta    = this.GetComponentInParent <CrossRoadMeta>();
        List <GameObject> options = new List <GameObject>();
        bool isFrom = false;

        foreach (var item in meta.roadGroup)
        {
            if (GameObject.ReferenceEquals(this.gameObject, item.from))
            {
                isFrom  = true;
                options = item.options;
            }
        }

        if (isFrom)
        {
            foreach (var item in options)
            {
                //Debug.Log("crossroadban vagyok, ez egy from elem; szülő: " + this.transform.parent);

                if (item.GetComponent <CrossRoadModel>().ClosestRoad == null)
                {
                    GameObject myNeighbourForward = ElementTable.MyClosestNeighbour(item, item.transform.forward * 5);
                    item.GetComponent <CrossRoadModel>().ClosestRoad = myNeighbourForward;

                    RoadElementModel component = myNeighbourForward.GetComponent <RoadElementModel>();

                    if (component.PreviousElement == null)
                    {
                        component.PreviousElement = item;
                    }
                    component.FindMyNeighbours();
                }
            }
        }
    }
    public void FindMyNeighbours()
    {
        if (nextElement == null)
        {
            GameObject myNeighbourForward = ElementTable.MyClosestNeighbour(this.gameObject, this.transform.forward * 5);

            NextElement = myNeighbourForward;

            if (myNeighbourForward.tag.Equals("RoadModel"))
            {
                RoadElementModel component = myNeighbourForward.GetComponent <RoadElementModel>();

                if (component.PreviousElement == null)
                {
                    component.PreviousElement = this.gameObject;
                }
                component.FindMyNeighbours();
            }

            if (myNeighbourForward.tag.Equals("CrossRoad"))
            {
                CrossRoadModel component = myNeighbourForward.GetComponent <CrossRoadModel>();

                if (component.ClosestRoad == null)
                {
                    component.ClosestRoad = this.gameObject;
                }

                component.FindMyNeighbours();
            }
        }

        if (previousElement == null)
        {
            GameObject myNeighbourBackward = ElementTable.MyClosestNeighbour(this.gameObject, (-1) * this.transform.forward * 5);

            PreviousElement = myNeighbourBackward;

            if (myNeighbourBackward.tag.Equals("RoadModel"))
            {
                RoadElementModel component = myNeighbourBackward.GetComponent <RoadElementModel>();

                if (component.NextElement == null)
                {
                    component.NextElement = this.gameObject;
                }
                component.FindMyNeighbours();
            }

            if (myNeighbourBackward.tag.Equals("CrossRoad"))
            {
                CrossRoadModel component = myNeighbourBackward.GetComponent <CrossRoadModel>();

                if (component.ClosestRoad == null)
                {
                    component.ClosestRoad = this.gameObject;
                }

                component.FindMyNeighbours();
            }
        }
    }