/// <summary> /// Draw the specified canvas. /// </summary> /// <param name="canvas">Canvas.</param> public virtual void Draw(ICanvas canvas, Rect rect) { DrawingFunction?.Invoke(canvas, rect); }
protected virtual void RecalculateDebugPoints(Vector2 startPoint, Vector2 endPoint, DrawingFunction drawingFunc) { STETilemap tilemap = GetTargetTilemap(); if (!tilemap) { return; } Vector2 cellSizeDiv2 = tilemap.CellSize / 2f; m_debugPoints.Clear(); int x0, y0, x1, y1; if ((ePositionType)m_action.positionType.Value == ePositionType.LocalPosition) { x0 = TilemapUtils.GetGridX(tilemap, startPoint); y0 = TilemapUtils.GetGridY(tilemap, startPoint); x1 = TilemapUtils.GetGridX(tilemap, endPoint); y1 = TilemapUtils.GetGridY(tilemap, endPoint); } else //if ((ePositionType)m_action.positionType.Value == ePositionType.GridPosition) { x0 = (int)startPoint.x; y0 = (int)startPoint.y; x1 = (int)endPoint.x; y1 = (int)endPoint.y; } drawingFunc(x0, y0, x1, y1, (x, y) => { m_debugPoints.Add(new Vector2(x * tilemap.CellSize.x + cellSizeDiv2.x, y * tilemap.CellSize.y + cellSizeDiv2.y)); return(true); }); }