namespace Mapbox.Unity.Utilities { using Mapbox.Unity.Map; using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using UnityEngine; public class MapVisualizerPerformance : MonoBehaviour { private Stopwatch _sw = new Stopwatch(); private AbstractMap _map; private AbstractMapVisualizer _mapVisualizer; public int TestCount = 10; private int _currentTest = 1; [NonSerialized] public float TotalTime = 0; private float _firstRun; protected virtual void Awake() { TotalTime = 0; _currentTest = 1; _map = FindObjectOfType(); _mapVisualizer = _map.MapVisualizer; _mapVisualizer.OnMapVisualizerStateChanged += (s) => { if (s == ModuleState.Working) { _sw.Reset(); _sw.Start(); } else if (s == ModuleState.Finished) { _sw.Stop(); if (_currentTest > 1) { TotalTime += _sw.ElapsedMilliseconds; UnityEngine.Debug.Log("Test " + _currentTest + ": " + _sw.ElapsedMilliseconds); } else { _firstRun = _sw.ElapsedMilliseconds; } if (TestCount > _currentTest) { _currentTest++; Invoke("Run", 1f); } else { if (_currentTest > 1) { UnityEngine.Debug.Log("First Run: " + _firstRun + " \r\nRest Average: " + TotalTime / (_currentTest - 1)); } } } }; } public void Run() { //TODO : FIX THIS ERROR //_map.Reset(); } } }