public void OnEndDrag(PointerEventData eventData) { if (!DrawEnabled) { return; } _lineRenderer = null; OnNewLines?.Invoke(this, _localLines); }
private void Update() { if (DrawOn && !_isDrawing) { _worldLines.Add(new List <Vector3>()); _surfaceLines.Add(new List <Vector3>()); _worldLineRenderer = new GameObject().AddComponent <LineRenderer>(); _worldLineRenderer.startWidth = _worldLineRenderer.endWidth = 0.02f; _surfaceLineRenderer = new GameObject().AddComponent <LineRenderer>(); _surfaceLineRenderer.startWidth = _surfaceLineRenderer.endWidth = 0.02f; } if (DrawOn) { if (!AddWorldPoint(TargetPosition.position)) { print("Unable to add new point"); } else { var world = _worldLines.Last(); _worldLineRenderer.positionCount = world.Count; _worldLineRenderer.SetPositions(world.ToArray()); var surface = _surfaceLines.Last(); _surfaceLineRenderer.positionCount = surface.Count; _surfaceLineRenderer.SetPositions(surface.ToArray()); } } if (!DrawOn && _isDrawing) { _worldLineRenderer = null; _surfaceLineRenderer = null; OnNewLines?.Invoke(this, _worldLines); } _isDrawing = DrawOn; }
public async void Start(string logDirectory) { if (_running) { return; } var startingPoint = GetStartingPoint(logDirectory); foreach (var logReader in _logWatchers) { logReader.Start(startingPoint, logDirectory); } _running = true; _stop = false; var newLines = new SortedList <DateTime, List <LogLine> >(); while (!_stop) { await Task.Factory.StartNew(() => { foreach (var logReader in _logWatchers) { var lines = logReader.Collect(); foreach (var line in lines) { if (!newLines.TryGetValue(line.Time, out var logLines)) { newLines.Add(line.Time, logLines = new List <LogLine>()); } logLines.Add(line); } } }); OnNewLines?.Invoke(new List <LogLine>(newLines.Values.SelectMany(x => x))); newLines.Clear(); await Task.Delay(UpdateDelay); } _running = false; }
public async void Start() { if (!_running) { DateTime startingRow = GetStartingRow(); foreach (var logFileMonitor in _logFileMonitors) { logFileMonitor.Begin(startingRow); } _running = true; _stop = false; var newLines = new SortedList <DateTime, List <LogEntry> >(); while (!_stop) { await Task.Factory.StartNew(() => { foreach (var logFileMonitor in _logFileMonitors) { var lines = logFileMonitor.Collect(); foreach (var line in lines) { if (!newLines.TryGetValue(line.Time, out var logEntries)) { newLines.Add(line.Time, logEntries = new List <LogEntry>()); } logEntries.Add(line); } } }); var linesToHandle = new List <LogEntry>(newLines.Values.SelectMany(x => x)); OnNewLines?.Invoke(linesToHandle); newLines.Clear(); await Task.Delay(Config.LogFileUpdateDelay()); } _running = false; } }