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 version | What to use | For |
|---|---|---|
| 6.3 and later | The built-in module | UI Toolkit Vector Images and Texture2D |
| 6.3 and later | Package 3.0.0-preview, on top of the built-in module | Sprites and uGUI |
| 2018.1 to 6.2 | Package 2.0.0-preview | Everything: “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:
- Open the Package Manager window.
- Click the install button in the toolbar.
- Select Install package by name.
- Enter the name:
com.unity.vectorgraphics - 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 makes | Use it for | Comes from |
|---|---|---|
| A UI Toolkit Vector Image | UI built with UI Toolkit and UI Builder | Built in from 6.3 |
| A Texture2D | Other places where a texture is wanted | Built in from 6.3 |
| A Sprite | A Sprite Renderer | The package |
| An SVGImage | UI built with uGUI | The 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.
| Setting | What 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” |
| Pivot | As for ordinary sprites, with one extra choice, SVG Origin: “the pivot is the (0,0) position of the SVG document” |
| Tessellation Mode | Basic Triangulation, “a good balance between performance and visual fidelity”, or Antialiased Arc Encoding, for smoother curves |
| Tessellation Settings: Basic | Give a Target Resolution and a Zoom Factor, and the importer works out the rest |
| Tessellation Settings: Advanced | Step 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 see | Likely cause | What to do |
|---|---|---|
| Unity does not recognise the .svg at all | No importer: a version before 6.3 without the package | Install com.unity.vectorgraphics |
| No Sprite or uGUI option in 6.3 or later | Those types come from the package | Install package 3.0.0-preview |
| Lettering is missing | Text elements are not supported | Convert text to paths |
| A shadow, blur or soft edge is missing | Filter effects and per-pixel masks are not supported | Remove them, or use a PNG |
| Curves look faceted | Tessellation is too coarse | Raise the Target Resolution, or lower the Step Distance |
| The image is blurred or pixelated when enlarged | It was imported as Texture2D, which is a fixed grid of pixels | Use a vector asset type, or import a larger texture |
| Imports fail on a build machine | Unity was started with -no-graphics | Start it with graphics |
| The asset is the wrong size in the scene | Pixels Per Unit | Change 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
- Convert text to paths.
- Remove filters and masks.
- Keep fills simple: solid colours and linear or radial gradients are what the package’s API describes.
- Crop the page to the artwork, so the pivot and size are what you expect. Crop SVG fits the viewBox to the drawing.
- 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.