Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Painter2D

Object to draw 2D vector graphics.
Read time 2 minutesLast updated 6 days ago

Definition

public class Painter2D : IDisposable

Remarks

The example below demonstrates how to use the Painter2D class to draw content in a VisualElement with the VisualElement.generateVisualContent callback.
You can also create a standalone Painter2D object to draw content offscreen, and use the Painter2D.SaveToVectorImage method to save the painter content in a VectorImage asset.

Examples

using UnityEngine;using UnityEngine.UIElements;[RequireComponent(typeof(UIDocument))]public class Painter2DExample : MonoBehaviour{ public void OnEnable() { var doc = GetComponent<UIDocument>(); doc.rootVisualElement.generateVisualContent += Draw; } void Draw(MeshGenerationContext ctx) { var painter = ctx.painter2D; painter.lineWidth = 10.0f; painter.lineCap = LineCap.Round; painter.strokeGradient = new Gradient() { colorKeys = new GradientColorKey[] { new GradientColorKey() { color = Color.red, time = 0.0f }, new GradientColorKey() { color = Color.blue, time = 1.0f } } }; painter.BeginPath(); painter.MoveTo(new Vector2(10, 10)); painter.BezierCurveTo(new Vector2(100, 100), new Vector2(200, 0), new Vector2(300, 100)); painter.Stroke(); }}

Constructors

Constructor

Description

Painter2D()Initializes an instance of Painter2D.

Properties

Property

Description

fillColorThe color used for fill paths when using Painter2D.Fill.
lineCapThe cap to use when drawing paths using Painter2D.Stroke.
lineJoinThe join to use when drawing paths using Painter2D.Stroke.
lineWidthThe line width of draw paths when using Painter2D.Stroke.
miterLimitWhen using LineJoin.Miter joins, this defines the limit on the ratio of the miter length to the stroke width before converting the miter to a bevel.
strokeColorThe color of draw paths when using Painter2D.Stroke.
strokeGradientThe stroke gradient to use when using Painter2D.Stroke.

Methods

Method

Description

ArcAdds an arc to the current sub-path to the provided position, radius and angles.
ArcToAdds an arc to the current sub-path to the provided position using a control point.
BeginPathBegins a new path and empties the list of recorded sub-paths.
BezierCurveToAdds a cubic bezier curve to the current sub-path to the provided position using two control points.
ClearWhen created as a detached painter, clears the current content. Does nothing otherwise.
ClosePathCloses the current sub-path with a straight line. If the sub-path is already closed, this does nothing.
DisposeDispose the Painter2D object and free its internal unmanaged resources.
FillFills the currently defined path.
LineToAdds a straight line to the current sub-path to the provided position.
MoveToBegins a new sub-path at the provied coordinate.
QuadraticCurveToAdds a quadratic bezier curve to the current sub-path to the provided position using a control point.
SaveToVectorImageSaves the content of this Painter2D to a VectorImage object.
StrokeStrokes the currently defined path.