.unitypackage → textured GLB · runs in your browser, files never leave your device
EN

Extract textures from a .unitypackage

Save the images from a Unity package as PNG in your browser, without installing Unity, then learn which file is albedo, normal, metallic or AO.

Drop your .unitypackage here

or

Select a model or scene on the left — preview and GLB buttons appear above

Log


        

Reviewed against the current product on November 5, 2026 · Published by Unity Asset Exporter.

Drop the .unitypackage into the tool on the homepage and click Textures as PNG (ZIP). You get a ZIP of the package's images. PNG and JPG files are copied unchanged, and other supported image formats are converted to PNG. Everything runs locally in your browser. Nothing is uploaded, and you do not need Unity or an account.

Three ways to get the images

The Files tree shows the original Unity paths restored from the package. To learn how the package stores files in GUID folders, see opening a .unitypackage without Unity.

What the texture ZIP contains

Large texture packs may arrive as several ZIP parts in browsers without a save-to-disk API. In browsers that have one, the ZIP can be written straight to disk.

PSD, HDR and EXR

For a PSD, the PNG holds the composited image. Layers are not kept. If you need the layers, download the original .psd from the Files tree.

HDR and EXR are tone-mapped (Reinhard, gamma 2.2) into an ordinary 8-bit PNG. That is fine for a quick look, but the high dynamic range is gone. For skyboxes, lighting or any work that needs the real values, keep the original .hdr or .exr from the Files tree or the raw ZIP.

Which map is which

File names in asset packs are not always clear. The reliable source is the material. Open the .mat file in the Files tree. It is Unity YAML text and lists each slot name with a reference to its texture. That reference is a GUID, not a file name, so matching it by hand takes some care. The common slots mean:

The metallic-smoothness texture

This is the map that confuses most people. Unity stores smoothness, which is the inverse of roughness: roughness = 1 − smoothness. It also puts it in the alpha channel, where many image viewers show nothing useful.

The texture ZIP does not change channel layout. A _MetallicGlossMap stays exactly as Unity packed it. To use it in Blender's Principled BSDF:

  1. Add the image as an Image Texture node and set its color space to Non-Color. In the image settings, set Alpha to Channel Packed so the alpha channel does not alter the color channels.
  2. Connect the node's Color output to a Separate Color node and send the red channel to Metallic.
  3. Take the Image Texture node's Alpha output, pass it through an Invert Color node (or a Math node computing 1 − value) and connect that to Roughness.

Plugging the alpha straight into Roughness gives you shiny areas where the surface should be rough, and the reverse. The smoothness in A of an HDRP _MaskMap needs the same inversion.

Color space

Albedo and emission are color data (sRGB). Normal, metallic, roughness and AO maps are non-color data. In Blender, set those image nodes to Non-Color. A normal map left on sRGB gives wrong shading. For other texture problems in Blender, see missing textures in Blender.

When to export GLB instead

If your goal is a textured model rather than a folder of images, skip the manual wiring. When the tool builds a GLB, it resolves Unity material references by GUID, using the FBX .meta externalObjects, prefab material assignments, material-name matching and conservative fallbacks. It maps the slots listed above to glTF inputs and embeds supported textures in one file. For the metallic-smoothness map it writes metallic to the blue channel and 1 − smoothness as roughness to the green channel, which is the layout glTF expects. Specular-gloss maps are approximated to metallic/roughness. Common URP, HDRP and asset-maker slot names such as _BaseColorMap, _MaskMap and _MetallicSmoothness are recognized too.

Load the model into the preview and use Download GLB — what's in the preview, or Download all selected as GLB (ZIP) for several models. The GLB guide covers single and bulk exports.

Limits

For all input and output formats and their limits, see supported formats.

FAQ

How do I convert a .unitypackage to PNG?
Open the package in the tool and click Textures as PNG (ZIP). Formats such as TGA, PSD, DDS, TIF, EXR and HDR are decoded in your browser and saved as PNG, while PNG and JPG files are copied unchanged.
Why is my roughness map backwards?
Unity stores smoothness, not roughness, in the alpha channel of the metallic map. Invert it (roughness = 1 − smoothness) before plugging it into Roughness, or export a GLB, where the tool repacks it for glTF.
Can I get textures without the weekly limit?
Yes. Downloading images one by one from the Files tree is always free and gives you the original bytes. Only bulk ZIP exports are limited, and Pro removes that limit.
Are PSD layers and HDR data kept?
Not in the PNG ZIP. PSD files export as the composited image, and HDR/EXR are tone-mapped to 8-bit PNG. Download the original file from the Files tree if you need layers or full dynamic range.
Can I extract textures from a Unity game's files?
No. The tool reads .unitypackage archives only, not AssetBundles or UnityFS files from built games.