Editor tools for browsing, versioning, submitting, and importing 3D models from a shared repository.
Package: com.models-library · Display name: Models Library · Version: 1.0.1
- Browse models with search, tags, grid/list views, favorites, and recent
- Import into the project with GUID preservation and install-status badges
- Detect updates via SemVer and changelog entries
- Submit new models or new versions (name prefilling, drafts, preview images)
- Notes, bulk operations, batch upload, analytics, and 3D preview
- File-system repository (supported) and HTTP repository (experimental)
- Hidden install manifests (
.modelLibrary.meta.json)
- Unity 6000.2 or later (developed/tested on 6000.2.6f2)
- .NET Standard 2.1
- Unity Editor only (no runtime / player dependencies)
- Disk space for the local model cache
- Network access only if using the HTTP repository
Window > Package Manager+→Add package from git URL...- Enter:
https://github.com/PierreGac/Unity-ModelsLibrary.git?path=Assets/ModelLibrary
Pin a tag or branch with #v1.0.1 or #main if needed.
- Clone the repository
+→Add package from disk...- Select
Assets/ModelLibrary/package.json
Copy Assets/ModelLibrary into your project's Assets folder.
- Open Tools > Model Library
- Complete the first-run wizard (identity, repository type/root)
- Browse or submit models
Settings live in the main window (not separate Unity menus). Secondary views (Help, shortcuts, analytics, batch upload, error log, profiler) are also opened from there.
-
Open
Tools > Model Library -
Configure repository (File System path/UNC, or HTTP base URL) and your name/role
-
Browse / import — search or filter, open a model, use Import
-
Submit — select assets in the Project window, then:
Assets > Model Library > Submit Model, or- the Submit action inside the Model Library window
Default import destination is Assets/Models/<ModelName>/ (overridable per model).
| Setting | Where | Notes |
|---|---|---|
| Repository kind / root | ModelLibrarySettings asset |
Created at Assets/ModelLibrary/Resources/ModelLibrarySettings.asset |
| Local cache | Same settings asset | Default: Library/ModelLibraryCache |
| User name / role | EditorPrefs |
Set in the wizard or settings UI |
Roles: Developer, Artist, Admin. These only gate Editor UI. They are not a security boundary—any real authorization must be enforced by your shared folder ACLs or HTTP server.
File System is the tested workflow. HTTP implements IModelRepository but needs more validation in production.
Open a model from the browser → Import to Project. Installed models show an Installed badge; newer repo versions show Update Available.
Open details for a model with an update → Update. GUIDs are preserved where possible; resolve conflicts carefully (prefer Keep when Unity prompts).
- Select FBX/OBJ (and related materials/textures) in the Project window
Assets > Model Library > Submit Model- Choose New or Update Existing, fill SemVer, description, tags, optional images
- Updates require a changelog summary
Other asset context actions:
Assets > Model Library > Open in Model LibraryAssets > Model Library > Check for UpdatesAssets > Model Library > View Details
From Model Details: add notes; Artists/Admins can edit description/tags and manage versions (UI-gated).
<repository-root>/
models_index.json
<modelId>/
<version>/
model.json
payload/ # mesh, materials, textures, …
images/ # preview images
After import, each install folder gets a hidden manifest:
.modelLibrary.meta.json(current)modelLibrary.meta.json(legacy, still detected)
Implement IModelRepository for custom storage backends:
Task<ModelIndex> LoadIndexAsync();
Task SaveIndexAsync(ModelIndex index);
Task<ModelMeta> LoadMetaAsync(string modelId, string version);
Task SaveMetaAsync(string modelId, string version, ModelMeta meta);
// plus file/directory helpers, DeleteVersionAsync, DeleteModelAsyncSee Editor/Infrastructure/Repository/ for the File System and HTTP implementations.
- HTTP repository is experimental; prefer a shared folder / UNC for team use
- Roles are client-side UI gating only
- GUID conflicts on import are common; use Keep when you need to preserve references
- Cache folders can leave access-denied or stale entries after VCS discard / version delete / 3D preview before import — delete the affected cache folder under
Library/ModelLibraryCacheand retry - Submitting models without usable assets is not fully blocked yet
Install pre-commit hooks so commits enforce .editorconfig (and staged C# style via dotnet format):
pip install pre-commit
python -m pre_commit installOn Windows, prefer python -m pre_commit … if pre-commit is not on your PATH (common with pip --user).
See CONTRIBUTING.md for setup, hook details, and coding standards.