Universal Asset Preview Studio
An Editor-only studio for Unity that indexes your whole project, then lets you browse, preview, validate, compare, organize and export every asset from one window — with live 3D playback, asset-health checks, thumbnail/GIF generation and headless CI automation. No runtime components, nothing to drop in a scene.
🔍 Unified browser
Indexed search across the project with filters, tags, collections and saved searches — virtualized for huge projects.
🖼 Live previews
Camera, lighting, environment and floor controls with live particle / animation / VFX playback and a renderer-stats overlay.
✅ Asset health
51 built-in validation rules with platform-budget profiles and JSON / CSV / Markdown / HTML reports.
🎥 Thumbnails & GIF
Static and animated (GIF) thumbnails with batch export and Project-window integration.
🔧 No-code authoring
Welcome window, menus and Create-asset menus for Validation Profiles, Export Presets and Team Workspaces.
🤖 Headless / CI
Batchmode validation, reports, audits, turntables and media export through UapsCli.
This guide starts with installation and the quick start, then walks each feature page, the no-code Editor tools, and the scripting API. Reference and support are at the end.
Installation
Import once, open the Studio, let it index. There is nothing to add to a scene.
In
Window → Package Manager → My Assets, download and import Universal Asset Preview Studio. It lands at Assets/UniversalAssetPreviewStudio/.On first import a Welcome window auto-opens once. It is dismissible and re-openable from
Window → Universal Asset Preview Studio → Welcome.Window → Universal Asset Preview Studio → Getting Started Scene opens a guided onboarding scene — a guidance card plus a ★ START HERE object whose Inspector launches the Studio, docs and demo in one click.Window → Universal Asset Preview Studio → Open Studio. Let the first scan finish — large projects may take a few minutes while assets are indexed.Window → Universal Asset Preview Studio → Open Demo Scene opens a WebGL-safe showcase that visualizes the editor workflows.Requirements
- Unity 6000.0 or newer.
- Works on URP, HDRP and Built-in render pipelines.
- Optional Addressables (for the Addressables audit) and the Visual Effect Graph (for live VFX previews). Both are auto-detected and degrade gracefully when absent.
What gets installed
Assets/UniversalAssetPreviewStudio/
Editor/ // the Studio window, views, providers, analyzers,
// validation rules, exporters and the CLI (editor-only)
Runtime/ // intentionally minimal: UapsRuntimeInfo (name/version) only
Demo/ // WebGL-safe interactive showcase scene
Documentation/ // You are here
Documentation~/ // Markdown source docs (QuickStart, UserManual, API, SDK, ...)
Tests/ // EditMode + PlayMode (run headless via UapsTestAutomation)Project
UnityEditor, AssetDatabase, importers, previews or the Test Runner are not available in player builds. The runtime assembly only exposes UapsRuntimeInfo.ProductName and Version.Quick Start
From a fresh import to a clean exported batch in a handful of steps.
Window → Universal Asset Preview Studio → Open Studio, then let the first index finish.Use search and query filters (for example
type:prefab, tag:hero, triangles>10000) to narrow the result set.Select an asset to load it into the preview stage; review the image, metadata, validation findings and dependency list. Mark good ones as favorites.
Open Validation view, pick a profile preset, and apply it to the visible results to catch problems before export.
Use
Export PNG for the selection or Batch Thumbs for the filtered set, then spot-check naming and framing on the output.Low Memory in the toolbar when browsing very large projects, low-memory machines, or remote editor sessions. It caps browser thumbnail size, disables overscan rows, limits in-memory thumbnail retention, and uses cached/fallback cell images instead of loading every uncached preview during scroll.How It Works
One index feeds a single browse / preview / validate / compare / export pipeline.
- Index. UAPS scans the project into
UapsAssetRecordentries with GUID, path, type, health, tags, collections, dependencies, reverse referencers, metrics and validation findings. Domain analyzers extract per-family signals. Updates are incremental through Unity asset post-processor events while the window is open. - Browse / Preview. Search and filter the index, then select an asset to load it onto the preview stage with shared camera / lighting / environment controls and live playback.
- Validate. The active
UapsValidationProfileapplies its rule set and thresholds to each record and surfaces info / warning / error findings. - Compare. Place up to four assets side by side for metric, dependency, import-setting and validation diffs, plus a visual sheet.
- Export. Produce PNG thumbnails, GIFs, contact sheets, documentation catalogs, dependency graphs and reports — in the UI or headless in CI.
Asset Browser
The indexed starting point for all work — search, filter, sort, organize.
Browse by name and path, or narrow with the left panel (type text, favorite state, collection, warning/error state). Select one asset for a detailed preview, or add up to four to Compare. Grid, list and presentation views are virtualized: only the visible row range plus a small overscan buffer is drawn, so very large result sets stay responsive.
Query filters
The search box accepts structured filters alongside free text. Invalid query fields are reported in the browser instead of silently matching every asset.
| Filter | Matches |
|---|---|
type:prefab, tag:vfx, collection:<name> | Asset type text, tag, or collection membership. |
health:warning, health:error | Validation status. |
triangles>10000, polycount>50000, width>2048 | Geometry and texture metrics. |
lods>0, uv>0, shader:lit, pipeline:urp, format:unorm, alpha:true | Import / material / texture signals. |
particles>500, drawcalls>4, raycasts>10 | VFX, draw-call proxy and UI raycast metrics. |
dependencies>20, dep:missing, ref:hero, referencers>1 | Dependency and reverse-referencer signals. |
addressable:true, addr:weapons | Addressable signals. |
Sorting
Order visible results by name, type, path, package, health, triangle count, texture memory, audio duration, VFX particle count, dependency count and related browser keys. Descending sort keeps a stable ascending path tie-break for equal primary keys.
Favorites, tags & collections
- Favorites are per-user quick triage.
- Tags are flexible overlapping labels (
hero,needs-review,store,low-poly). Tags added from the Studio are mirrored into the project team workspace asset so they can be shared. - Collections are explicit asset sets or saved-query sets — release batches, store packages, client deliveries. The team workspace stores collection names, explicit GUID membership, optional saved queries, notes and export preset names.
- Saved searches in the Sources panel capture the current search text and filters; selecting one reapplies them.
- Bulk visible controls add or remove a tag or collection from the entire current filtered result set (with confirmation for large sets).
Previews
A shared preview stage with camera, lighting, environment, floor and live playback.
The selected preview panel surrounds the asset with its metadata, validation findings, dependency list and export actions. Prefabs, meshes and materials are rendered through UapsPreviewRenderPipeline.CaptureAsset when Unity can render them; other asset types fall back to provider previews, cached thumbnails, or a type-colored fallback image.
Shared preview controls
| Control | What it does |
|---|---|
| Yaw / Pitch / FOV / Padding | Orbit the camera and frame the subject. |
| Render mode overlay | Switch how the subject is shaded for review. |
| Environment source | Skybox material, cubemap skybox, panoramic texture skybox (when the shader is available), or sampled-color fallback for unsupported assets. |
| Key light & fill light | Adjustable light angle via keyLightYaw / keyLightPitch (no longer a hard-coded rotation). |
| Floor plane | Optional ground plane framed on subject bounds so it reads as an infinite floor. |
| Playback scrub | Live timeline position for animated subjects. |
| Stats overlay | On-preview renderer stats: triangles, vertices, submeshes, renderers, materials, skinned meshes and particle systems. |
| Background / transparency | Background color or transparent capture. |
Live playback
UapsPreviewSceneAnimator advances Shuriken particle systems, samples Animator / legacy animation clips, and steps Visual Effect Graph effects (via reflection, with no hard dependency on the optional package) to a normalized timeline point before capture. CaptureAssetFrame(asset, state, size, normalizedTime) renders a single live frame, so 3D previews actually play instead of freezing at frame 0. Scene advancement is CPU-only and runs headless, though the final pixel render still needs a graphics device.
Domain-specific previews
- Audio clips use a generated waveform preview.
- Readable textures use an inspection preview with RGB over checkerboard and an alpha strip.
- Animation clips use a temporal timeline provider.
- Other assets use Unity's
AssetPreviewsupport, then fall back to a mini thumbnail or type-colored fallback.
Thumbnails & GIF
Static and animated thumbnails with caching, batch export and Project-window integration.
Thumbnails provide quick visual identification in the browser and in exported asset lists. Export thumbnails for the selected asset, or use Batch Thumbs for the entire filtered result set. Browser cells prefer cached thumbnails and Unity quick previews, so scrolling does not generate files for every asset.
Cache
- Cached PNGs include JSON sidecar metadata keyed by asset GUID, provider, import dependency hash, Unity version, color space, render pipeline, size and transparency mode.
- The Export view shows cache size and corrupt-entry count, can queue missing visible cache entries, clean invalid entries, enforce a 512 MB budget, or clear the cache.
- Use transparent PNG export for reusable catalog images.
Window → Universal Asset Preview Studio → Project Window Thumbnailstoggles cached overlays in the Project window. The overlay draws cached thumbnails only and never generates them during repaint.
Animated thumbnails & GIF
UapsAnimatedThumbnailService.GenerateFrameSequence(...) writes a bounded PNG frame sequence (maximum 24 frames at 512 px). Temporal preview providers are sampled frame-by-frame; when timeline sampling is unavailable, it emits a static fallback sequence and records a warning. Use Export Selected GIF when a short native GIF is required — UAPS keeps the source PNG frames and a manifest beside the GIF.
-uapsEncoderPath, optional -uapsEncoderArgs and -uapsFps) such as FFmpeg.Validation
Asset-health checks that answer one question fast: is this asset ready to preview, thumbnail and export?
The Validation view holds the active profile editor. Choose a built-in preset, assign an existing UapsValidationProfile asset, adjust grouped thresholds, apply the profile to the visible result set, reset from the preset, and save the tuned profile under Assets/ when it should live in source control.
Severity levels
| Level | Meaning | Examples |
|---|---|---|
| Info | Does not block preview work; flags choices that may affect consistency. | Unusual dimensions, missing optional metadata, asset outside a preferred folder. |
| Warning | Previews or exports may be incomplete, inconsistent or misleading. | Texture read/write enabled, high prefab component count, high dependency count, looping animation that moves root position, animator with empty states, duplicate Addressables addresses. |
| Error | Should be fixed before export. | Prefab contains a missing script, renderer slot with a missing material, material references a missing shader. |
Rule catalog & profiles
The built-in catalog contains 51 validation rules. Presets adjust both severity policy and thresholds over the same rule set. Available presets:
General Development Mobile Low Mobile High Desktop VR Console Asset Store Publisher UI Heavy Project VFX Heavy Project Animation Library
For example, Mobile Low flags smaller textures, lower mesh budgets and lower particle counts than Desktop; UI Heavy relaxes UI thresholds; VFX Heavy relaxes VFX thresholds; Animation Library relaxes animation/controller thresholds. Project profiles can also override rule severities, disable rules, set a minimum severity and decide whether package assets are included.
Typical checks
- Missing scripts, missing material slots, materials with missing shaders.
- Oversized textures, read/write enabled, missing mipmaps on large textures, non-power-of-two or apparently uncompressed formats, high texture memory.
- High mesh triangle / submesh / blend-shape / bone counts, meshes without UV channels, high-poly prefabs without an LODGroup.
- High material slot or shader-keyword counts, transparent / late render queues, incomplete basic PBR on lit materials.
- Long audio clips with expensive load settings, high sample rates, stereo use, clipping risk or high memory estimates.
- High particle budgets, particle-system / trail / line counts, and estimated VFX overdraw.
- Large prefab component / collider / rigidbody / light / camera / AudioSource / Animator counts and high draw-call proxies.
- Dense animation curve data, high event counts, looping root-motion mismatch, animator empty states and controller complexity.
- UI prefabs with many raycast targets, layout groups or canvases, and missing responsive anchors.
- High dependency counts; Shader Graph / VFX Graph error or missing-text signals; duplicate Addressables addresses.
Dependency Graph
Explore the selected asset's dependencies and reverse referencers, then export.
The Dependency Graph view supports traversal depth, incoming / outgoing toggles, type and path filtering, a draggable in-window node canvas, node expand/collapse controls, node summaries, labeled edges, and select / ping actions. The index records direct dependencies and reverse referencers for indexed assets, so graphs can show incoming reference edges where that data is available.
Exporting
| Format | Use it for |
|---|---|
| Markdown | Review documents. |
| DOT | Rendering with external graph tools. |
| SVG | A deterministic visual graph you can open in a browser or embed in docs. |
Export from the Export view or headless with UapsCli.ExportDependencyGraph; the underlying service is UapsDependencyGraphService.
Comparison
Place up to four assets side by side with metric, dependency, import and visual diffs.
Compare view holds up to four assets. Each card shows the preview, type, health and a metric summary, and the view builds metric, dependency, import-setting and validation diffs.
Linked preview state
Camera and playback sync toggles drive a shared comparison preview state for compatible assets. Linked yaw, pitch, FOV, padding, render mode, environment and playback scrub values are applied to built-in captures and to providers that implement the stateful or temporal preview contracts. Assets without those capabilities fall back to their normal preview behavior and report compatibility notes.
Export
Export Reportwrites a Markdown comparison report (metric / import / dependency / validation diffs).Export Visual Sheetwrites a PNG sheet with side-by-side preview cells, health and metric bands, and a first-asset-versus-each-other diff heatmap row.
Package & Addressables Audit
Quick project-structure and Addressables checks, in the UI or headless.
Package audit
The package audit reads Packages/manifest.json and reports dependency counts, Unity package/module counts, whether URP is present, and whether the Addressables package is installed. Run it headless with UapsCli.PackageAudit (UapsPackageAnalyzer underneath).
Addressables audit
Addressable status on indexed assets is detected from labels and common folder names. When the Addressables package is installed, UapsAddressablesAnalyzer uses reflection to report groups, entries, duplicate addresses and missing asset references; it also has a YAML fallback that scans Assets/AddressableAssetsData when present. Detailed bundle layout and remote/local risk simulation remain limited.
Release readiness & clean-import audits
- The release-readiness report (
UapsReleaseReadinessValidator) checks for required package structure, docs, tests, samples and core artifacts.UapsCli.ReleaseReadinessexits with a non-zero code when blocking errors are found, so CI release gates fail correctly. - The clean-import audit (
UapsCleanImportAuditor) reports whether the package root, asmdefs, docs, samples, tests, editor scripts and runtime scripts are present before a clean-project import pass.
Headless / CI
Run the same pipelines in batchmode for continuous integration.
Invoke entry points with Unity -batchmode -nographics -projectPath <project> -executeMethod <method>. The CLI surface lives in UapsCli, and test automation in UapsTestAutomation.
Entry points
| Method | Does |
|---|---|
UapsCli.RunValidation | Project validation report. |
UapsCli.GenerateThumbnails | Thumbnails for a filtered set. |
UapsCli.ExportReport | JSON / CSV / Markdown / HTML report. |
UapsCli.ExportCatalog | Markdown / HTML documentation catalog. |
UapsCli.ExportContactSheet | Contact sheet (-uapsSize, -uapsColumns, -uapsMaxItems). |
UapsCli.ExportMedia | PNG frames + native GIF; external encoder for WebP/MP4. |
UapsCli.ExportTurntable | Turntable contact sheet. |
UapsCli.ExportDependencyGraph | Markdown / DOT / SVG graph. |
UapsCli.PackageAudit / AddressablesAudit / CleanImportAudit | Project-structure and Addressables audits. |
UapsCli.ReleaseReadiness | Release gate (non-zero exit on blocking errors). |
UapsTestAutomation.RunEditMode / RunPlayMode | Run the test suites and write results XML. |
Example commands
# Validation report
Unity.exe -batchmode -nographics -quit -projectPath "<project>" \
-executeMethod UniversalAssetPreviewStudio.UapsCli.RunValidation \
-uapsOutput "UAPSReports/validation.json"
# Contact sheet
Unity.exe -batchmode -nographics -quit -projectPath "<project>" \
-executeMethod UniversalAssetPreviewStudio.UapsCli.ExportContactSheet \
-uapsOutput "UAPSReports/contact-sheet.png" -uapsSize 160 -uapsColumns 4 -uapsMaxItems 64
# Animated media (GIF) for one clip
Unity.exe -batchmode -nographics -quit -projectPath "<project>" \
-executeMethod UniversalAssetPreviewStudio.UapsCli.ExportMedia \
-uapsAssetPath "Assets/MyClip.anim" -uapsOutput "UAPSReports/media" \
-uapsFormat gif -uapsFrames 24 -uapsSize 256
# Test automation
Unity.exe -batchmode -nographics -projectPath "<project>" \
-executeMethod UniversalAssetPreviewStudio.UapsTestAutomation.RunEditMode \
-uapsOutput "TestResults/uaps-editmode.xml"Shell
UapsPreviewRenderPipeline.CaptureAsset cannot capture in batchmode, UAPS falls back to provider previews, cached thumbnails or documented frame-sequence fallbacks where the workflow supports them. Live scene advancement (particles/animation/VFX) still runs, but the final pixel render needs a render target.Editor Tools / No-Code
Everything UAPS does is reachable from menus, windows and Create-asset entries — no scripting required.
Windows & menus
| Menu path | What it opens |
|---|---|
Window → Universal Asset Preview Studio → Open Studio | The main Studio window (UapsWindow) — browse, preview, validate, compare, organize, export, audit. |
Window → … → Open Toolkit Studio | A UI Toolkit browser shell for modern docking / search / details. The classic Studio remains the feature-complete surface for all export and analysis actions. |
Window → … → Welcome | The first-run Welcome window. Auto-opens once, dismissible, and re-openable here. |
Window → … → Getting Started Scene | Opens the onboarding scene — an on-screen guidance card plus a ★ START HERE object whose Inspector has one-click buttons to open the Studio, docs and demo. |
Window → … → Documentation | Opens this documentation. |
Window → … → Open Demo Scene | Opens the WebGL-safe interactive demo scene. |
Window → … → Project Window Thumbnails | Toggles cached Project-window thumbnail overlays. |
Assets → UAPS → Preview Selected | Jumps the Studio to the currently selected asset. |
Tools → Universal Asset Preview Studio → Demo / Samples | Rebuild the Welcome / demo / example scenes and generate the fixture library. |
No-code authoring assets
Create configuration as ScriptableObjects (with inspector tooltips) from Assets → Create → Universal Asset Preview Studio:
A UapsValidationProfile — rule overrides, minimum severity, package inclusion and threshold values. Pick a preset in Validation view, tune it, and save it here so it lives in source control.
A UapsExportPreset describing repeatable export settings for thumbnails, reports and catalogs.
A UapsTeamWorkspaceSettings asset storing shared saved searches, tags, collections, pinned comparisons, recents and review assignments — project metadata that belongs in source control instead of personal EditorPrefs.
The Welcome window & Getting Started scene
On first import the Welcome window auto-opens once to orient new users toward opening the Studio, the documentation and the onboarding scene. It is dismissible and can always be re-opened from the menu. It is informational only — nothing about your project changes when it shows.
The Getting Started scene (Window → … → Getting Started Scene) is a self-contained onboarding scene: it shows an always-visible guidance card with the three-step quick start, and a ★ START HERE object whose Inspector turns into a launcher — one click opens the Studio, the documentation, the interactive demo or the Welcome window. Regenerate it any time from Tools → Universal Asset Preview Studio → Demo → Rebuild Welcome Scene.
Asset Type Modules
One index and shared pipeline, with domain-specific metadata and validation layered over each asset family.
| Family | Extracted signals | Common checks |
|---|---|---|
| Textures & sprites | Dimensions, graphics format, mipmaps, alpha import setting, readability, sprite count, estimated memory, average brightness, alpha coverage. | Size thresholds, read/write, missing mipmaps, high memory, NPOT, low alpha coverage, uncompressed formats. |
| Meshes & prefabs | Vertices, triangles, submeshes, UVs, blend shapes, bounds, material slots, renderers, components, colliders, rigidbodies, lights, cameras, animators, AudioSources, LOD groups, missing scripts/materials, draw-call proxies. | Missing scripts/materials, triangle & submesh thresholds, missing UVs, high-poly without LODGroup, prefab budgets. |
| Materials | Shader name, render queue, enabled keywords, texture slots, assigned/missing textures, normal map, basic PBR completeness. | Missing shaders, high keyword counts, transparent/late render queues, incomplete PBR on lit materials. |
| Audio | Duration, channels, frequency, estimated memory, waveform, peak, RMS, zero-crossing rate, loop-candidate estimate. | Expensive load for long clips, long stereo clips, high memory, clipping risk, high sample rates. |
| Animation & controllers | Duration, frame rate, loop state, curve/event counts, root-motion signals; controller layers, parameters, states, transitions, blend trees, empty states, referenced clips. | Dense curves, high event counts, looping root-motion mismatch, empty states, controller complexity. |
| VFX | Particle systems, renderers, trails, lines, bursts, max particles, emission-rate estimate, world-space simulation, estimated overdraw. | Max particle thresholds, system/trail/line counts, estimated overdraw. |
| UI prefabs | RectTransforms, graphics, raycast targets, layout groups, canvases, fixed/stretch anchors, negative-size rects, responsive-anchor signal. | Excessive raycast targets / layout groups / canvases, missing responsive anchors. |
| Graph assets | Shader Graph / VFX Graph text analysis: estimated nodes, connection signals, properties, exposed properties, error/missing text. | Error/missing text signals, high estimated node counts (lightweight static pass). |
Scripting API
The extension surface lives in the UniversalAssetPreviewStudio namespace. Treat public editor APIs as package contracts.
Registry
UapsRegistry stores editor extension implementations. Registration deduplicates by ID where one exists, otherwise by implementation type.
using UniversalAssetPreviewStudio;
UapsRegistry.RegisterPreviewProvider(new MyPreviewProvider());
UapsRegistry.RegisterMetadataExtractor(new MyExtractor());
UapsRegistry.RegisterValidationRule(new MyRule());
UapsRegistry.RegisterExportAction(new MyExportAction());C#
Extension contracts
| Interface | Purpose |
|---|---|
IUapsAssetPreviewProvider | Returns preview textures for supported records. |
IUapsStatefulPreviewProvider | Consumes UapsPreviewState for linked camera, render mode, environment and playback-aware previews. |
IUapsTemporalPreviewProvider | Samples provider frames at normalized playback times for animated thumbnails and media. |
IUapsThumbnailProvider | Returns thumbnail textures for supported records. |
IUapsMetadataExtractor | Adds extracted signals to a record's metrics. |
IUapsValidationRule | One deterministic finding rule (severity, message, optional fix). |
IUapsComparisonAdapter | Contributes comparison data between assets. |
IUapsExportAction | A registered export operation. |
IUapsPreviewOverlay | Draws overlay content on the preview stage. |
IUapsPreviewControlProvider | Adds preview control descriptors. |
IUapsAssetTypeClassifier | Classifies indexed assets into families. |
IUapsRenderPipelinePreviewAdapter | Adjusts the preview camera/lights/root for the active render pipeline. |
Key entry classes
| Type | Purpose |
|---|---|
UapsAssetRecord / UapsAssetMetrics | The indexed asset model and its extracted metric signals. |
UapsPreviewRenderPipeline.CaptureAsset(record, state, size) | Render a supported prefab / mesh / material capture with the shared preview state. |
UapsPreviewRenderPipeline.CaptureAssetFrame(asset, state, size, normalizedTime) | Render a single live frame at a timeline point (advances particles / animation / VFX first). |
UapsPreviewState | Shared yaw, pitch, FOV, padding, render mode, environment, background, lighting (incl. keyLightYaw/keyLightPitch), floor/stats toggles and playback values. |
UapsPreviewSession.Create(record) | A plan-oriented preview lifecycle: provider, capabilities, controls, overlays, rendering and cleanup scope. |
UapsAnimatedThumbnailService.GenerateFrameSequence(...) | Bounded PNG frame sequences using temporal providers, with static fallback. |
UapsThumbnailService | Thumbnail generation, cached lookup, PNG export, sidecar metadata, cache stats and budget enforcement. |
UapsValidationProfileService.Validate(record, profile) | Applies a profile to one record; CreateProfile(...) builds the built-in presets. |
UapsSearchQuery.Parse(query) / UapsAssetIndexService.Search(...) | Parse browser filters and search indexed records. |
UapsReportExporter / UapsDocumentationGenerator / UapsContactSheetExporter | JSON/CSV/Markdown/HTML reports, catalogs and contact sheets. |
UapsDependencyGraphService / UapsComparisonReportService / UapsMediaExportService | Graph export, comparison reports/visual sheets and media exports. |
UapsTeamWorkspaceService | Shared saved searches, tags, collections, pinned comparisons, recents and review assignments. |
Built-in providers
UapsAudioWaveformPreviewProvider, UapsAnimationTimelinePreviewProvider, UapsTextureInspectorPreviewProvider, UapsLiveSceneTemporalProvider (live prefab/model playback, priority 50) and UapsDefaultPreviewProvider. Analyzers include UapsAnimationAnalyzer, UapsAnimatorControllerAnalyzer, UapsRetargetAnalyzer, UapsVfxAnalyzer, UapsMaterialAnalyzer, UapsTextureAnalyzer, UapsAudioAnalyzer, UapsUiAnalyzer, UapsAddressablesAnalyzer and UapsGraphAssetAnalyzer.
UnityEditor, AssetDatabase, importers, previews and the Test Runner and are not available in player builds. Capture methods can return null in graphics-limited batchmode — handle that with thumbnail / provider fallback paths.Troubleshooting
The issues that come up most, and how to resolve them.
An asset doesn't appear in the browser
Refresh the browser and confirm the asset is inside the Unity project. Incremental updates run through Unity asset post-processor events while the Studio window is open; if the window was closed during a large import, a full rescan picks up the new assets.
A preview is blank
Check whether the asset type is supported, whether dependencies are missing, and whether import settings allow preview generation. Metadata and validation still work for many assets even when Unity cannot render a rich preview image; UAPS falls back to a mini thumbnail or a type-colored fallback.
A 3D preview freezes at frame 0
Use the Playback scrub control — live captures advance particles, animation and VFX before rendering. In headless sessions, scene advancement still runs but the final render needs a graphics device, so it may fall back to a static frame.
Exports are inconsistent
Regenerate thumbnails for the same filtered set and confirm the same output size and background option is used for the whole batch. Regenerate stale thumbnails after large art, material or import-setting changes.
Contact-sheet output is unexpectedly small
Check -uapsMaxItems or the current filtered result count. The CLI clamps large projects intentionally so automation cannot generate unbounded sheets by accident.
WebP / MP4 export wrote PNG frames instead
Only GIF encoding is bundled. For WebP/MP4, supply an external encoder with -uapsEncoderPath (plus optional -uapsEncoderArgs and -uapsFps), e.g. FFmpeg. Without it, UAPS writes a bounded PNG frame sequence plus a JSON manifest and records the attempted command.
The browser is sluggish on a huge project
Enable Low Memory in the toolbar. It caps browser thumbnail size, removes overscan rows, limits in-memory thumbnail retention, and uses cached/fallback cell images for uncached assets — ideal for very large projects, low-memory machines and remote editor sessions.
FAQ
Quick answers to the questions that come up most.
Is there anything to add to a scene at runtime?
No. UAPS is an Editor-only workflow tool. The runtime assembly is intentionally minimal — it only exposes UapsRuntimeInfo.ProductName and Version. There are no runtime components to drop into a scene.
Which Unity versions and render pipelines are supported?
Unity 6000.0 or newer, on URP, HDRP and Built-in. Addressables and the Visual Effect Graph are optional — they are auto-detected and degrade gracefully when absent.
Do I need Addressables or the VFX Graph installed?
No. The Addressables audit uses reflection when the package is installed and falls back to scanning Assets/AddressableAssetsData otherwise. Live VFX previews step the Visual Effect Graph via reflection when present, with no hard dependency on the package.
What export formats are supported?
PNG thumbnails and contact sheets; native GIF for short animated previews; JSON / CSV / Markdown / HTML reports; Markdown / HTML documentation catalogs; and Markdown / DOT / SVG dependency graphs. WebP and MP4 require a project-supplied external encoder; otherwise UAPS writes PNG frames plus a manifest.
Can I run it in CI without a display?
Yes — the UapsCli and UapsTestAutomation entry points run under -batchmode -nographics. When a graphics device is unavailable, render capture falls back to provider previews, cached thumbnails or documented frame-sequence fallbacks. ReleaseReadiness returns a non-zero exit code on blocking errors so release gates fail correctly.
Is the validation result authoritative for runtime performance?
No. Validation is a fast editorial check for preview readiness using editor-time signals. It does not claim authoritative runtime performance results or prove that an asset pack is defect-free; validate final behaviour in target builds.
Can my team share tags, collections and saved searches?
Yes. The UapsTeamWorkspaceSettings asset stores shared saved searches, project tags, collections, pinned comparisons, recents and review assignments, so this metadata can live in source control instead of personal EditorPrefs.
Can I extend it with my own previews or rules?
Yes. Implement one of the provider / extractor / rule / adapter / export interfaces and register it through UapsRegistry. See the Scripting API.
Support
Need help? We're here for you.
Get in Touch
Bug reports, feature requests, workflow questions — reach out and we'll get back to you.
✉ szekipapa77@gmail.comWe typically respond within 24–48 hours.
- Check the Troubleshooting section
- Refresh the browser / rescan the project
- Confirm the asset is inside the Unity project
- Check the Console for skipped-asset or capture messages
- Unity version (e.g.
6000.0.30f1) - UAPS version (v0.3.1)
- Render pipeline (Built-in / URP / HDRP)
- The asset type + a sample asset path
Universal Asset Preview Studio v0.3.1 · Built for Unity 6000.0+ · Editor-only · URP, HDRP & Built-in
Support: szekipapa77@gmail.com