using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Logging; using UnityEngine; namespace Plotting { public class DebugPlot { #region signleton private static Lazy instance = new Lazy (() => new DebugPlot()); public static DebugPlot Instance => instance.Value; public static void DestroyInstance() { if (instance.IsValueCreated) { instance.Value.Dispose(); instance = new Lazy (() => new DebugPlot()); } } #endregion private List plotWriters = new List(); private Process plottingProc; private DebugPlot() { } public AsyncLogFileWriter StartPlotting(string path) { var writer = new AsyncLogFileWriter(path); plotWriters.Add(writer); return writer; } public void ShowPlots() { plottingProc = Process.Start("CMD.exe",$"/C cd Assets/Plotting & python plot.py"); } private void Dispose() { plottingProc?.Kill(); foreach (var p in plotWriters) { p.Dispose(); } } } }