Пример #1
0
        protected Vector2d CenterInMercator;         //this is like distance (meters) in mercator

        public virtual void Init(List <Factory> factories, World.Settings settings)
        {
            _factories = factories;


            if (MapMaterial == null)
            {
                MapMaterial = Resources.Load <Material>("Ground");
            }

            var v2   = GM.LatLonToMeters(settings.Lat, settings.Long);
            var tile = GM.MetersToTile(v2, settings.DetailLevel);

            TileHost = new GameObject("Tiles").transform;
            TileHost.SetParent(transform, false);

            Zoom             = settings.DetailLevel;
            TileSize         = settings.TileSize;
            UseLayers        = settings.UseLayers;
            Tiles            = new Dictionary <Vector2d, Tile>();
            CenterTms        = tile;
            CenterInMercator = GM.TileBounds(CenterTms, Zoom).Center;
            Range            = settings.Range;
            LoadImages       = settings.LoadImages;

            LoadTiles(CenterTms, CenterInMercator);

            var rect = GM.TileBounds(CenterTms, Zoom);

            transform.localScale = Vector3.one * (float)(TileSize / rect.Width);
        }
Пример #2
0
        public override void Init(List <Factory> factories, World.Settings settings)
        {
            base.Init(factories, settings);
            _removeAfter = Math.Max(_removeAfter, Range * 2 + 1);
            var rect = new Vector2(settings.TileSize, settings.TileSize);

            _centerCollider = new Rect(Vector2.zero - rect / 2, rect);
        }
Пример #3
0
 public override void Init(List <Factory> factories, World.Settings settings)
 {
     CacheFolderPath = Path.Combine(Application.dataPath, RelativeCachePath);
     if (!Directory.Exists(CacheFolderPath))
     {
         Directory.CreateDirectory(CacheFolderPath);
     }
     base.Init(factories, settings);
 }
Пример #4
0
        public override void Init(Dictionary<Type, Factory> factories, World.Settings settings)
        {
            base.Init(factories, settings);
            _removeAfter = Math.Max(_removeAfter, Range * 2 + 1);
            var refTile = Tiles.Values.First();
            _centerCollider = new Rect(Vector2.zero - refTile.Rect.size / 2 * transform.lossyScale.x, refTile.Rect.size * transform.lossyScale.x);

            Observable.Interval(TimeSpan.FromSeconds(2)).Subscribe(x => { UpdateTiles(); });
        }
Пример #5
0
        protected Vector2 CenterInMercator;         //this is like distance (meters) in mercator

        public virtual void Init(Dictionary <Type, Factory> factories, World.Settings settings)
        {
            _factories = factories;
            var v2   = GM.LatLonToMeters(settings.Lat, settings.Long);
            var tile = GM.MetersToTile(v2, settings.DetailLevel);

            TileHost = new GameObject("Tiles").transform;
            TileHost.SetParent(transform, false);

            _key             = settings.Key;
            Zoom             = settings.DetailLevel;
            TileSize         = settings.TileSize;
            Tiles            = new Dictionary <Vector2, Tile>();
            CenterTms        = tile;
            CenterInMercator = GM.TileBounds(CenterTms, Zoom).center;
            Range            = settings.Range;
            LoadImages       = settings.LoadImages;

            LoadTiles(CenterTms, CenterInMercator);

            var rect = GM.TileBounds(CenterTms, Zoom);

            transform.localScale = Vector3.one * (TileSize / rect.width);
        }
        public override void Init(BuildingFactory buildingFactory, RoadFactory roadFactory, World.Settings settings)
        {
            base.Init(buildingFactory, roadFactory, settings);
            _removeAfter    = Math.Max(_removeAfter, Range * 2 + 1);
            _tileSize       = Tiles.Values.First().Rect.size;
            _centerCollider = new Rect(Vector2.zero - Tiles.Values.First().Rect.size / 2, Tiles.Values.First().Rect.size);

            //   Observable.Interval(TimeSpan.FromSeconds(2)).Subscribe(x => { UpdateTiles(); });
        }
Пример #7
0
        protected Vector2 CenterInMercator;         //this is like distance (meters) in mercator

        public virtual void Init(BuildingFactory buildingFactory, RoadFactory roadFactory, World.Settings settings)
        {
            //初始经纬度转mercator
            var v2 = GM.LatLonToMeters(settings.Lat, settings.Long);

            Debug.Log("v2:");
            Debug.Log(v2);
            //经纬度转detail level级别的tile坐标
            var tile = GM.MetersToTile(v2, settings.DetailLevel);

            //tilehost为tile的坐标
            TileHost = new GameObject("Tiles").transform;
            TileHost.SetParent(transform, false);

            BuildingFactory = buildingFactory;
            RoadFactory     = roadFactory;
            Tiles           = new Dictionary <Vector2, Tile>();
            CenterTms       = tile;
            //tile 坐标
            CenterInMercator = GM.TileBounds(CenterTms, Zoom).center;
            initposition     = (v2 - CenterInMercator).ToVector3xz();
            GameManager.Instance.yourselfavatar = Instantiate(yourself, initposition, this.transform.rotation) as GameObject;
            GameManager.Instance.yourselfavatar.GetComponent <GPSmovemen>().centertiletms = CenterInMercator;

            Zoom       = settings.DetailLevel;
            Range      = settings.Range;
            LoadImages = settings.LoadImages;
            Debug.Log("Centertms: ");
            Debug.Log(CenterTms);
            Debug.Log("CenterinMercator: ");
            Debug.Log(CenterInMercator);
            LoadTiles(CenterTms, CenterInMercator);
        }
Пример #8
0
        protected Vector2 CenterInMercator;         //this is like distance (meters) in mercator

        public virtual void Init(BuildingFactory buildingFactory, RoadFactory roadFactory, World.Settings settings)
        {
            var v2   = GM.LatLonToMeters(settings.Lat, settings.Long);
            var tile = GM.MetersToTile(v2, settings.DetailLevel);

            TileHost = new GameObject("Tiles").transform;
            TileHost.SetParent(transform, false);

            BuildingFactory  = buildingFactory;
            RoadFactory      = roadFactory;
            Tiles            = new Dictionary <Vector2, Tile>();
            CenterTms        = tile;
            CenterInMercator = GM.TileBounds(CenterTms, Zoom).center;
            Zoom             = settings.DetailLevel;
            Range            = settings.Range;
            LoadImages       = settings.LoadImages;

            LoadTiles(CenterTms, CenterInMercator);
        }