SVG in Unity: how to import and use vector images

How Unity imports SVG: built in from Unity 6.3, through the Vector Graphics package before that. Import settings, what is not supported and how to fix it.

Published

Unity can import SVG files, and how it does so depends on the version. From Unity 6.3 an SVG importer is built into the editor, for UI Toolkit vector images and for textures. For sprites and the older uGUI system, and for every version before 6.3, the importer comes from Unity’s own Vector Graphics package, com.unity.vectorgraphics, which is still marked as a preview. In every case the importer reads a subset of SVG 1.1: text, filter effects and per-pixel masking are not supported, so those need dealing with before the file goes in.

This page follows Unity’s manual for Unity 6.3 and the Vector Graphics package documentation for versions 2.0 and 3.0, read in October 2026.

Which importer you have

Unity’s package documentation gives this guide:

Unity versionWhat to useFor
6.3 and laterThe built-in moduleUI Toolkit Vector Images and Texture2D
6.3 and laterPackage 3.0.0-preview, on top of the built-in moduleSprites and uGUI
2018.1 to 6.2Package 2.0.0-previewEverything: “full vector graphics support”

If you only use UI Toolkit or Texture2D imports, the documentation says, the built-in module is enough and the package is not needed. When a project is upgraded to 6.3 or later, Unity upgrades the package to 3.0.0-preview and migrates the existing SVG assets automatically.

Install the package, if you need it

The 2.0 documentation calls the package experimental, and says that for this reason it “must be added using the com.unity.vectorgraphics name”. Unity’s manual gives the steps for installing a package by name:

  1. Open the Package Manager window.
  2. Click the install button in the toolbar.
  3. Select Install package by name.
  4. Enter the name: com.unity.vectorgraphics
  5. Optionally enter a version, then click Install.

The manual notes that when a newer pre-release exists beside a released version, the Package Manager picks the released one unless you type a version yourself. The package’s changelog lists 3.0.0-preview.7, dated 16 February 2026, as the latest at the time of writing.

Import an SVG

With an importer in place, an SVG is an asset like any other. The package documentation: “Either drop them directly into the Assets folder in the Projects window, or select Assets > Import New Asset from the menu bar.”

Select the imported file and look at the Inspector. The first choice is what kind of asset Unity should make of it.

What Unity makesUse it forComes from
A UI Toolkit Vector ImageUI built with UI Toolkit and UI BuilderBuilt in from 6.3
A Texture2DOther places where a texture is wantedBuilt in from 6.3
A SpriteA Sprite RendererThe package
An SVGImageUI built with uGUIThe package

For UI, Unity’s manual says to set Generated Asset Type to UI Toolkit Vector Image “to get the best results”: it “creates a specialized asset designed exclusively for use within UI Toolkit”.

The import settings

Unity does not draw curves directly. It tessellates the drawing, which means cutting every shape into triangles, and the settings control how finely.

SettingWhat Unity’s documentation says
Pixels Per Unit“Number of SVG units that correspond to 1 scene unit”
Gradient Resolution“Texture size used to store gradients”
PivotAs for ordinary sprites, with one extra choice, SVG Origin: “the pivot is the (0,0) position of the SVG document”
Tessellation ModeBasic Triangulation, “a good balance between performance and visual fidelity”, or Antialiased Arc Encoding, for smoother curves
Tessellation Settings: BasicGive a Target Resolution and a Zoom Factor, and the importer works out the rest
Tessellation Settings: AdvancedStep Distance, Sampling Steps, Max Cord Deviation and Max Tangent Angle

For the basic settings the manual advises using for Target Resolution “the lowest value that produces satisfactory results”. In the advanced settings, Step Distance is the “distance at which the importer generates vertices along the paths”, and “lower values result in a more dense tessellation”. More triangles mean smoother curves and more work for the renderer.

Pixels Per Unit sets the size in the scene. A drawing 512 SVG units wide, imported at 100 pixels per unit, is 5.12 scene units wide. To see the size and viewBox of a file, open it in the SVG viewer.

What is not supported

Unity’s manual lists what the importer leaves out of SVG 1.1:

  • Text elements
  • Per-pixel masking
  • Filter effects
  • Interactivity features
  • Animations

It also warns against starting Unity with the -no-graphics command-line argument, “as this might prevent SVG vector images from importing correctly”. That matters on build servers.

What this means for a file from a drawing program:

  • Text disappears. Convert it to shapes before exporting. In Inkscape, select the text and choose Path, Object to Path. In Illustrator it is Type, Create Outlines.
  • Drop shadows, blurs and glows disappear. They are filter effects. Remove them, or bake the picture to a PNG.
  • Per-pixel masking is not supported. The package documentation points to section 14.4 of SVG 1.1 for it, which is the section on the <mask> element. Clipping by a plain shape is a different feature, and the package’s API describes it, with a warning that clipping “can be an expensive operation”.
  • Animations in the SVG are not carried over. Animate in Unity instead.

The SVG viewer counts the text elements and images in a file and shows its code, where a <filter> or <mask> element is easy to spot. Checking there first saves an import that silently loses half the drawing. Editor data from the drawing program can go too: the SVG optimizer removes it, along with unused definitions, without changing the picture.

If the import fails or looks wrong

What you seeLikely causeWhat to do
Unity does not recognise the .svg at allNo importer: a version before 6.3 without the packageInstall com.unity.vectorgraphics
No Sprite or uGUI option in 6.3 or laterThose types come from the packageInstall package 3.0.0-preview
Lettering is missingText elements are not supportedConvert text to paths
A shadow, blur or soft edge is missingFilter effects and per-pixel masks are not supportedRemove them, or use a PNG
Curves look facetedTessellation is too coarseRaise the Target Resolution, or lower the Step Distance
The image is blurred or pixelated when enlargedIt was imported as Texture2D, which is a fixed grid of pixelsUse a vector asset type, or import a larger texture
Imports fail on a build machineUnity was started with -no-graphicsStart it with graphics
The asset is the wrong size in the scenePixels Per UnitChange it, or change the viewBox of the SVG

When a PNG is the better choice

A vector asset is drawn as triangles, so a very detailed drawing, such as a traced photograph with thousands of small shapes, can cost more to render than a single textured rectangle. And anything that depends on filters cannot be imported as a vector at all. In both cases, turn the SVG into a PNG and import that as an ordinary sprite. SVG to PNG draws the file at any pixel size you choose, up to 12,000 pixels on a side on a computer, with a transparent background. Pick the size from the largest the image will appear on screen.

Flat icons, logos and UI shapes are where SVG earns its place in Unity: one small file, sharp at every resolution and zoom.

Getting an SVG ready for Unity

  1. Convert text to paths.
  2. Remove filters and masks.
  3. Keep fills simple: solid colours and linear or radial gradients are what the package’s API describes.
  4. Crop the page to the artwork, so the pivot and size are what you expect. Crop SVG fits the viewBox to the drawing.
  5. Check the file in the SVG viewer, then import it.

For what an SVG is and what it holds, see What is an SVG file.