private void OnDragBeganOnDotHandler(object grid) { var cellView = (GridCellView)grid; _currentDotOrigin = cellView as DotView; var gridDatum = cellView.GridDatum; if (_lineLookup.ContainsKey(gridDatum.ColorData.ColorId)) { _currentLineRenderer = _lineLookup[gridDatum.ColorData.ColorId]; if (_completedLines.ContainsKey(gridDatum.ColorData.ColorId)) { ClearLine(gridDatum.ColorData.ColorId); } } else { _currentLineRenderer = Instantiate(_linePrefab, transform, false); _currentLineRenderer.startColor = _currentLineRenderer.endColor = gridDatum.ColorData.UnityColor; _lineLookup.Add(gridDatum.ColorData.ColorId, _currentLineRenderer); } var lineData = new List <Vector3Int>(); var gridData = new List <GridDatum>(); lineData.Add(GridUtility.GetLocalPositionFromIndices(gridDatum.PosX, gridDatum.PosY)); UpdateLine(_currentLineRenderer, lineData); _currentGridDatum = gridDatum; _currentLineColorData = gridDatum.ColorData; _currentLineData = lineData; _currentLineGridData = gridData; _lineDrawState = LineDrawState.Drawing; }
private void FinishDrawing() { _currentDotOrigin = null; _currentGridDatum = null; _currentLineData = null; _currentLineRenderer = null; _currentLineData = null; _lineDrawState = LineDrawState.None; }
private void CancelCurrentLine() { if (_currentLineRenderer == null) { return; } _currentLineRenderer.positionCount = 0; _currentLineRenderer = null; _currentLineColorData = null; _currentDotOrigin = null; foreach (var gridDatum in _currentLineGridData) { gridDatum.ColorData = null; } _lineDrawState = LineDrawState.None; }