using System.Collections.Generic; using UnityEngine; public class GoogleStyledSatelliteExample:MonoBehaviour { private List requests; private void Start() { requests = new List(); OnlineMaps.instance.OnStartDownloadTile += OnStartDownloadTile; } private void Update() { foreach (TileRequest request in requests) { if (request.www.isDone) { if (string.IsNullOrEmpty(request.www.error) && request.tile.status != OnlineMapsTileStatus.disposed) { Texture2D texture = new Texture2D(256, 256, TextureFormat.ARGB32, false); texture.LoadImage(request.www.bytes); texture.wrapMode = TextureWrapMode.Clamp; request.tile.overlayBackTexture = texture; } request.Dispose(); } } requests.RemoveAll(r => r.tile == null); } private void OnStartDownloadTile(OnlineMapsTile tile) { TileRequest request = new TileRequest(tile); requests.Add(request); OnlineMaps.instance.StartDownloadTile(tile); } internal class TileRequest { public OnlineMapsWWW www; public OnlineMapsTile tile; public TileRequest(OnlineMapsTile tile) { string url = string.Format("http://maps.google.com/maps/vt?pb=!1m5!1m4!1i{0}!2i{1}!3i{2}!4i256!2m3!1e0!2sm!3i338006595!3m14!2sen-US!3sUS!5e18!12m1!1e50!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC52Om9mZixzLnQ6MXxwLnY6b24scy50OjZ8cC52Om9uLHMudDo4MnxwLnY6b24!4e0&token=64463", tile.zoom, tile.x, tile.y); www = new OnlineMapsWWW(url); this.tile = tile; } public void Dispose() { www.Dispose(); www = null; tile = null; } } }