public void UpdateStats() { Statistics.RequestQueueLength = RequestManager.Count(t => t.Tileset == this); Statistics.ActiveDownloads = RequestManager.CountActiveDownloads(t => t.Tileset == this); Statistics.ProcessingQueueLength = ProcessingQueue.Count(t => t.Tileset == this); Statistics.DownloadedTiles = TileCache.Count(t => t.Tileset == this); Statistics.ReadyTiles = TileCache.Count(t => t.Tileset == this && t.ContentState == Unity3DTileContentState.READY); Unity3DTilesetStatistics.MaxLoadedTiles = TileCache.MaxSize; }
public void Start() { RequestManager = new RequestManager(SceneOptions); TileCache = new TileCache(SceneOptions); if (SceneOptions.ClippingCameras.Count == 0) { SceneOptions.ClippingCameras.Add(Camera.main); } _start(); }
protected override void UpdateStats() { //this works but is very inefficient and drags down framerate significantly when many tilesets are loaded //foreach (var tileset in tilesets) //{ // tileset.UpdateStats(); //} RequestManager.ForEachQueuedDownload(t => { t.Tileset.Statistics.RequestQueueLength++; }); RequestManager.ForEachActiveDownload(t => { t.Tileset.Statistics.ActiveDownloads++; }); foreach (var tile in ProcessingQueue) { tile.Tileset.Statistics.ProcessingQueueLength++; } TileCache.ForEach(t => { t.Tileset.Statistics.DownloadedTiles++; if (t.ContentState == Unity3DTileContentState.READY) { t.Tileset.Statistics.ReadyTiles++; } }); Unity3DTilesetStatistics.MaxLoadedTiles = TileCache.MaxSize; Stats = Unity3DTilesetStatistics.Aggregate(tilesets.Select(t => t.Statistics).ToArray()); }