Exemplo n.º 1
0
        public override void Run(VectorEntity ve, UnityTile tile)
        {
            int selpos = ve.Feature.Points[0].Count / 2;
            var met    = ve.Feature.Points[0][selpos];

            IFeaturePropertySettable settable = null;
            GameObject go;

            if (_objects.ContainsKey(ve.GameObject))
            {
                go       = _objects[ve.GameObject];
                settable = go.GetComponent <IFeaturePropertySettable>();
                if (settable != null)
                {
                    go = (settable as MonoBehaviour).gameObject;
                    settable.Set(ve.Feature.Properties);
                }
                // set gameObject transform
                go.name = ve.Feature.Data.Id.ToString();
                go.transform.localPosition = met;
                go.transform.localScale    = Constants.Math.Vector3One;

                if (!_options.scaleDownWithWorld)
                {
                    go.transform.localScale = Vector3.one / tile.TileScale;
                }
                return;
            }
            else
            {
                go = Instantiate(_options.prefab);
                _prefabList.Add(go);
                _objects.Add(ve.GameObject, go);
            }

            go.name = ve.Feature.Data.Id.ToString();
            go.transform.position = met;
            go.transform.SetParent(ve.GameObject.transform, false);
            go.transform.localScale = Constants.Math.Vector3One;

            settable = go.GetComponent <IFeaturePropertySettable>();
            if (settable != null)
            {
                settable.Set(ve.Feature.Properties);
            }

            if (!_options.scaleDownWithWorld)
            {
                go.transform.localScale = Vector3.one / tile.TileScale;
            }

            if (_options.AllPrefabsInstatiated != null)
            {
                _options.AllPrefabsInstatiated(_prefabList);
            }
        }
Exemplo n.º 2
0
        public void PositionScaleRectTransform(VectorEntity ve, UnityTile tile, GameObject go, Vector2d latLong)
        {
            go.transform.localScale = _options.prefab.transform.localScale;
            RectTransform            goRectTransform;
            IFeaturePropertySettable settable = null;
            var latLongPosition = new Vector3();
            var centroidVector  = new Vector3();

            foreach (var point in ve.Feature.Points[0])
            {
                centroidVector += point;
            }
            centroidVector = centroidVector / ve.Feature.Points[0].Count;

            latLongPosition   = Conversions.LatitudeLongitudeToUnityTilePosition(latLong, tile.CurrentZoom, tile.TileScale, 4096).ToVector3xz();
            latLongPosition.y = centroidVector.y;

            go.name = ve.Feature.Data.Id.ToString();

            goRectTransform = go.GetComponent <RectTransform>();
            if (goRectTransform == null)
            {
                go.transform.localPosition = centroidVector;
            }
            else
            {
                goRectTransform.anchoredPosition3D = centroidVector;
            }
            //go.transform.localScale = Constants.Math.Vector3One;

            settable = go.GetComponent <IFeaturePropertySettable>();
            if (settable != null)
            {
                settable.Set(ve.Feature.Properties);
            }

            if (_options.scaleDownWithWorld)
            {
                go.transform.localScale = (go.transform.localScale * (tile.TileScale));
            }
        }
Exemplo n.º 3
0
        public void PositionScaleRectTransform(VectorEntity ve, UnityTile tile, GameObject go)
        {
            RectTransform            goRectTransform;
            IFeaturePropertySettable settable = null;
            var centroidVector = new Vector3();

            foreach (var point in ve.Feature.Points[0])
            {
                centroidVector += point;
            }
            centroidVector = centroidVector / ve.Feature.Points[0].Count;

            go.name = ve.Feature.Data.Id.ToString();

            goRectTransform = go.GetComponent <RectTransform>();
            if (goRectTransform == null)
            {
                go.transform.localPosition = centroidVector;
                if (_options.scaleDownWithWorld)
                {
                    go.transform.localScale = _options.prefab.transform.localScale * (tile.TileScale);
                }
            }
            else
            {
                goRectTransform.anchoredPosition3D = centroidVector;
                if (_options.scaleDownWithWorld)
                {
                    goRectTransform.localScale = _options.prefab.transform.localScale * (tile.TileScale);
                }
            }

            //go.transform.localScale = Constants.Math.Vector3One;

            settable = go.GetComponent <IFeaturePropertySettable>();
            if (settable != null)
            {
                settable.Set(ve.Feature.Properties);
            }
        }
Exemplo n.º 4
0
    public override void Run(VectorEntity ve, UnityTile tile)
    {
        int selpos = ve.Feature.Points[0].Count / 2;
        var met    = ve.Feature.Points[0][selpos];

        IFeaturePropertySettable settable = null;
        GameObject go = null;

        if (!allTypes.Contains(ve.Feature.Properties["type"] as string))
        {
            allTypes.Add(ve.Feature.Properties["type"] as string);
        }

        if (_objects.ContainsKey(ve.GameObject))
        {
            go       = _objects[ve.GameObject];
            settable = go.GetComponent <IFeaturePropertySettable>();
            if (settable != null)
            {
                go = (settable as MonoBehaviour).gameObject;
                bool usedType = false;
                for (int i = 0; i < resourceLocationData.Count; i++)
                {
                    if (resourceLocationData[i].LocTypes.Contains(ve.Feature.Properties["type"] as string))
                    {
                        //go.GetComponent<MapMarker>().Set(ve.Feature.Properties);
                        go.GetComponent <MapMarker>().Init(ve.Feature.Data.Id, resourceLocationData[i].ResourceType, resourceLocationData[i].Icon, resourceLocationData[i].BackColor);
                        usedType = true;
                        break;
                    }
                }
                go.SetActive(usedType && PlacesManager.Instance.CanAddMarker(ve.Feature.Data.Id));
                go.name = ve.Feature.Data.Id.ToString();
                go.transform.localPosition = met;
                go.transform.localScale    = Vector3.one;
                //settable.Set(ve.Feature.Properties);
                if (!_scaleDownWithWorld)
                {
                    go.transform.localScale = Vector3.one / tile.TileScale;
                }
                return;
            }
        }
        else
        {
            for (int i = 0; i < resourceLocationData.Count; i++)
            {
                if (resourceLocationData[i].LocTypes.Contains(ve.Feature.Properties["type"] as string))
                {
                    go = Instantiate(MarkerPrefab);
                    //go.GetComponent<MapMarker>().Set(ve.Feature.Properties);
                    go.GetComponent <MapMarker>().Init(ve.Feature.Data.Id, resourceLocationData[i].ResourceType, resourceLocationData[i].Icon, resourceLocationData[i].BackColor);
                    _objects.Add(ve.GameObject, go);
                    break;
                }
            }
        }

        if (go != null && go.activeSelf)
        {
            go.SetActive(PlacesManager.Instance.CanAddMarker(ve.Feature.Data.Id));
            go.name = ve.Feature.Data.Id.ToString();
            go.transform.position = met;
            go.transform.SetParent(ve.GameObject.transform, false);
            go.transform.localScale = Vector3.one;

            /*settable = go.GetComponent<IFeaturePropertySettable>();
             * if (settable != null)
             * {
             *  settable.Set(ve.Feature.Properties);
             * }*/

            if (!_scaleDownWithWorld)
            {
                go.transform.localScale = Vector3.one / tile.TileScale;
            }
        }
    }