Beispiel #1
0
        public virtual IEnumerator CreateLine(GOTile tile, bool delayedLoad)
        {
            GORenderingOptions renderingOptions = GetRenderingOptions();

            if (renderingOptions.lineWidth == 0)
            {
                yield break;
            }

            GOFeatureMeshBuilder builder = new GOFeatureMeshBuilder(this);

            featureCenter = builder.center;
            GameObject line = null;

            if (preloadedMeshData != null)
            {
                line = builder.BuildLineFromPreloaded(this, tile.map, parent);
            }

            if (line == null)
            {
                yield break;
            }

            line.name = name != null? name:kind.ToString();

            //Layer mask
            if (layer.useLayerMask == true)
            {
                tile.AddObjectToLayerMask(layer, line);
            }

            if (goTile.addGoFeatureComponents)
            {
                GOFeatureBehaviour fb = line.AddComponent <GOFeatureBehaviour> ();
                fb.goFeature = this;
            }

            //Mapzen Streetnames
            if (goTile.mapType == GOMap.GOMapType.Mapzen_Legacy && layer.layerType == GOLayer.GOLayerType.Roads && name != null && name.Length > 0 && goTile.useStreetnames && !isLoop && !goTile.useElevation)
            {
                GOStreetName streetName = GameObject.Instantiate(goTile.streetnamePrototype, line.transform).GetComponent <GOStreetName>();
                streetName.gameObject.name = name + "_streetname";
                yield return(tile.StartCoroutine(streetName.Build(name, this)));
            }

            if (layer.OnFeatureLoad != null)
            {
                layer.OnFeatureLoad.Invoke(this, line);
            }

            if (delayedLoad)
            {
                yield return(null);
            }
        }
Beispiel #2
0
        IEnumerator CreateLabel(GOTile tile, bool delayedLoad)
        {
            GameObject label = GameObject.Instantiate(goTile.streetnamePrototype);

            //Mapzen Streetnames
            if (name != null && name.Length > 0 && !goTile.useElevation)
            {
                GOStreetName streetName = label.GetComponent <GOStreetName>();
                streetName.gameObject.name = name + "_streetname";
                yield return(tile.StartCoroutine(streetName.Build(name, this)));
            }

            if (label == null)
            {
                yield break;
            }

            Vector3 pos = label.transform.position;

            pos.y = y;
            label.transform.position = pos;
            label.transform.SetParent(parent.transform);

            //Layer mask
            if (labelsLayer.useLayerMask == true)
            {
                tile.AddObjectToLayerMask(layer, label);
            }

            if (goTile.addGoFeatureComponents)
            {
                GOFeatureBehaviour fb = label.AddComponent <GOFeatureBehaviour> ();
                fb.goFeature = this;
            }

            if (labelsLayer.OnLabelLoad != null)
            {
                labelsLayer.OnLabelLoad.Invoke(this, label);
            }

            if (delayedLoad)
            {
                yield return(null);
            }
        }
Beispiel #3
0
        public virtual IEnumerator CreateLine(GOTile tile, bool delayedLoad)
        {
            //if ()
            //GORenderingOptions renderingOptions = GetRenderingOptions();
            float          lineWidth;
            int            unityLayer;
            GOFeatureEvent goFeatureEvent;

            if (layer != null)
            {
                lineWidth      = renderingOptions.lineWidth;
                unityLayer     = layer.unityLayer;
                goFeatureEvent = layer.OnFeatureLoad;
            }
            else
            {
                lineWidth      = tileSetLineRendering.witdh;
                unityLayer     = tilesetLayer.unityLayer;
                goFeatureEvent = tilesetLayer.OnFeatureLoad;
            }


            if (lineWidth == 0)
            {
                yield break;
            }

            GOFeatureMeshBuilder builder = new GOFeatureMeshBuilder(this);

            featureCenter = builder.center;
            GameObject line = null;

            if (preloadedMeshData != null)
            {
                line = builder.BuildLineFromPreloaded(this, tile.map, parent);
            }

            if (line == null)
            {
                yield break;
            }

            line.name = name != null ? name : kind.ToString();

            //Layer mask
            line.layer = unityLayer;

            if (goTile.addGoFeatureComponents)
            {
                GOFeatureBehaviour fb = line.AddComponent <GOFeatureBehaviour>();
                fb.goFeature = this;
            }

            //Mapzen Streetnames
            if ((goTile.mapType == GOMap.GOMapType.Nextzen || goTile.mapType == GOMap.GOMapType.Mapbox) && layer != null && layer.layerType == GOLayer.GOLayerType.Roads && name != null && name.Length > 0 && goTile.useStreetnames && !isLoop && !goTile.useElevation)
            {
                GOStreetName streetName = GameObject.Instantiate(goTile.streetnamePrototype, line.transform).GetComponent <GOStreetName>();
                streetName.gameObject.name = name + "_streetname";
                yield return(tile.StartCoroutine(streetName.Build(name, this)));
            }

            if (goFeatureEvent != null)
            {
                goFeatureEvent.Invoke(this, line);
            }

            if (delayedLoad)
            {
                yield return(null);
            }
        }