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); } }
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)); } }
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); } }
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; } } }