Communitygithub.com

unity-technologies/gérer-atlas-de-sprites

Gérer SpriteAtlas via le pipeline de préconstruction avec IPreprocessBuildWithReport (approche PAR DÉFAUT). Utilisez-le pour configurer les atlas maîtres, les atlas variants, les paramètres de texture, les paramètres de conditionnement et les configurations spécifiques à la plateforme.

Qu'est-ce que gérer-atlas-de-sprites ?

Ce skill fournit des connaissances procédurales pour scripter des atlas de sprites dans les projets Unity, en utilisant une approche de préconstruction (IPreprocessBuildWithReport) comme méthode par défaut. Il garantit une séparation stricte entre la création dans l'éditeur et l'accès à l'exécution. Le skill couvre la configuration des atlas maîtres et variants, les paramètres de texture, le conditionnement et les configurations spécifiques à la plateforme. Il supporte à la fois l'intégration directe dans le build et la liaison tardive via Addressables pour le chargement à la demande. Le skill s'applique principalement via la génération de code prebuild, mais inclut également des options pour la création manuelle d'atlas lorsque l'utilisateur le demande explicitement. Il est important de noter que le skill exige des vérifications préalables rigoureuses : il faut scanner les scripts existants marqués par l'identifiant `// [UNITY-SKILL:SPRITEATLAS]` pour éviter les doublons. Si des scripts sont trouvés, l'utilisateur choisit entre mettre à jour, créer de nouveaux scripts ou annuler. Le skill insiste aussi sur la vérification du mode SpritePacker, qui doit être activé pour que les atlas fonctionnent réellement, et il évite d'ajouter des sprites provenant d'assets Unity intégrés ou de packages. Les fichiers de référence sont stockés sous `resources/` et doivent être lus avant toute implémentation pour éviter des erreurs classiques de runtime. La version 2 du skill (V2) est particulièrement utile pour les projets qui nécessitent une gestion automatisée des atlas de sprites, que ce soit pour l'interface utilisateur, les sprites de gameplay ou le contenu téléchargeable. Elle offre une flexibilité via deux options : l'option A (intégration directe) et l'option B (Addressables avec liaison tardive).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/unity-technologies/skills/tree/main/skills/manage-sprite-atlas

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Unity SpriteAtlas V2

Fournit des connaissances procédurales sûres pour l'éditeur pour scripter des atlas dans les projets Unity. V2 applique une séparation stricte entre la création dans l'éditeur et l'accès à l'exécution.

⚠️ Principe critique de V2 : SpriteAtlas est uniquement pour l'exécution. SpriteAtlasAsset est uniquement pour l'éditeur. Ne mélangez jamais les contextes. Utilisez toujours V2.

🚨 CRITIQUE : Vérifications requises et entrées utilisateur avant l'implémentation

EFFECTUEZ TOUJOURS ces vérifications et posez ces questions AVANT de générer du code :

Lisez les ressources fournies avant d'écrire du code (OBLIGATOIRE)

Ce skill fournit du code C# fonctionnel sous resources/, et le code d'atlas qui pose problème est presque toujours écrit sans l'avoir lu en premier. Ouvrez les fichiers pour le chemin que vous empruntez, puis écrivez.

Chemin empruntéLisez d'abord
Tout travail sur les atlasresources/authoringvsruntime.cs, references/common-errors.md
Génération prebuild (par défaut)resources/spriteatlasprebuildgenerator.cs, resources/enablespritepacking.cs, resources/savespriteatlasasset.cs
Option B, liaison tardive Addressablesresources/buildaddressablespostprocess.cs, resources/spriteatlaslatebinding.cs, resources/handlelatebinding.cs
Tout ce qui pourrait utiliser une API plus ancienneresources/deprecatedmethods.cs, resources/dontscriptspriteatlasineditor.cs, resources/dontpackinruntimebuilds.cs

resources/ contient 38 fichiers au total, couvrant les conditionneurs personnalisés, les variantes, les paramètres de plateforme et l'accès à l'exécution. Parcourez le répertoire lorsque votre tâche n'est pas dans le tableau ci-dessus plutôt que d'inventer une approche. Utiliser l'API de mémoire au lieu de lire ces fichiers est la cause la plus fréquente d'un atlas qui s'importe proprement mais ne fait rien à l'exécution.

0. Vérifiez les scripts existants (PREMIÈRE ÉTAPE OBLIGATOIRE)

AVANT de générer du code, parcourez le projet pour trouver des scripts SpriteAtlas existants générés par ce skill.

Recherchez les fichiers contenant l'identifiant : // [UNITY-SKILL:SPRITEATLAS]

Si des scripts existants sont trouvés, demandez TOUJOURS à l'utilisateur avec ce format :

"J'ai trouvé des scripts SpriteAtlas existants dans votre projet :

Générateur Prebuild :

  • Assets/Editor/SpriteAtlas/SpriteAtlasPrebuildGenerator.cs

Constructeur Addressables :

  • Assets/Editor/SpriteAtlas/BuildAddressablesPostprocess.cs

Chargeur d'exécution :

  • Assets/Scripts/SpriteAtlas/SpriteAtlasLateBinding.cs

Que souhaitez-vous faire ?"

Présentez ensuite les options :

  • Option A : Mettre à jour les scripts existants (Recommandé si les exigences ont changé)

    • Régénère les scripts aux chemins existants
    • Préserve les emplacements des fichiers
    • Met à jour vers la dernière version
    • ⚠️ Peut écraser les modifications personnalisées
  • Option B : Créer de nouveaux scripts avec des noms différents

    • Génère à côté des scripts existants
    • Permet plusieurs configurations d'atlas
    • Les scripts originaux restent inchangés
    • Vous devrez spécifier de nouveaux noms/chemins
  • Option C : Abandonner (conserver l'existant inchangé)

    • Aucune génération de code
    • Aucune modification du projet
    • Utilisez cette option si vous souhaitez conserver la configuration actuelle

Gestion du choix de l'utilisateur :

  • Si A est choisi : Régénère aux chemins existants, incrémente la version à 2.0.1+
  • Si B est choisi : Demandez de nouveaux noms de scripts (par exemple, "SpriteAtlasPrebuild_Custom.cs"), puis générez
  • Si C est choisi : Arrêtez immédiatement, informez l'utilisateur qu'aucune modification n'a été effectuée

1. Mécanisme de livraison (OBLIGATOIRE)

Demandez : "Comment souhaitez-vous livrer les atlas de sprites ?"

Option A : Données intégrées (Chargement immédiat)

  • Les atlas sont inclus dans le build et chargés immédiatement
  • Définissez includeInBuild = true
  • Adapté pour : Interface utilisateur principale, sprites de gameplay principaux, assets toujours nécessaires
  • Avantages : Simple, aucun package supplémentaire, accès instantané
  • Inconvénients : Augmente la taille initiale du build, ne peut pas être mis à jour sans nouveau build

Option B : Liaison tardive via Addressables (Chargement à la demande)

  • Les atlas NE sont PAS inclus dans le build, chargés à la demande via Addressables
  • Définissez includeInBuild = false
  • Créez des entrées Addressables pour chaque atlas
  • Ajoutez la configuration Addressables comme étape de préconstruction
  • 🚨 OBLIGATOIRE : Construisez le contenu Addressables comme étape de build
  • 🚨 OBLIGATOIRE : Créez un script de chargeur d'exécution à liaison tardive
  • Adapté pour : Contenu DLC, fonctionnalités optionnelles, gros assets, contenu téléchargeable
  • Avantages : Build initial plus petit, peut être mis à jour indépendamment, chargement à la demande
  • Inconvénients : Nécessite le package Addressables, chargement asynchrone, dépendance réseau
Cas d'utilisationRecommandé
Sprites d'interface utilisateur principaux toujours visiblesOption A : Intégré
Sprites de tutoriel ou d'intégrationOption A : Intégré
Sprites spécifiques à un niveau (100+ niveaux)Option B : Addressables
Contenu DLC ou saisonnierOption B : Addressables
Sprites d'interface utilisateur localisés (plusieurs langues)Option B : Addressables
Skins de personnages ou cosmétiquesOption B : Addressables

2. Mode SpritePacker (OBLIGATOIRE)

Activez le mode Sprite Packer avant de créer des atlas, puis lisez le paramètre en retour et confirmez qu'il a pris effet. Utilisez le code dans resources/enablespritepacking.cs ; il définit EditorSettings.spritePackerMode et configure les paramètres de conditionnement de l'importateur.

C'est l'étape qui décide si l'atlas que vous produisez est réel. Disabled est la valeur zéro de SpritePackerMode, donc tout projet où personne ne l'a défini porte le conditionnement Disabled, et un atlas créé alors qu'il est Disabled s'importe toujours, apparaît toujours comme un asset, et semble toujours terminé, mais ne peut jamais être conditionné. Unity le dit dans l'Inspector : "Sprite Atlas packing is disabled". Rien d'autre dans le flux de travail n'échoue, donc un atlas livré de cette manière se lit comme un succès. Ne supposez pas qu'un projet est déjà configuré : lisez la valeur.

Ne traitez donc pas "Je l'ai défini" comme terminé. Après l'avoir défini, lisez EditorSettings.spritePackerMode en retour, confirmez qu'il n'est pas Disabled, et signalez la valeur que vous avez réellement lue. Si vous ne pouvez pas le lire, dites-le plutôt que de supposer que l'écriture a fonctionné.

NE modifiez PAS les fichiers meta DIRECTEMENT.

🚨 CRITIQUE : L'approche par défaut est la génération Prebuild

Utilisez TOUJOURS IPreprocessBuildWithReport pour générer ou mettre à jour automatiquement les SpriteAtlas pendant le pipeline de build. C'est l'approche PAR DÉFAUT et OBLIGATOIRE sauf si l'utilisateur demande EXPLICITEMENT une création manuelle.

❌ NE créez PAS de scripts d'élément de menu manuels

NE créez JAMAIS de scripts avec des attributs [MenuItem] pour la génération d'atlas, sauf demande explicite. L'approche prebuild élimine le besoin de clics manuels. Utilisez la création manuelle uniquement pour : les mises en page optimisées à la main, les arrangements de sprites spécifiques, ou les exigences de prévisualisation dans l'éditeur. Voir Avancé : Création manuelle.

🚨 CRITIQUE : Restriction de l'emplacement source des sprites

Ajoutez UNIQUEMENT des sprites du dossier Assets du projet. N'ajoutez JAMAIS de sprites provenant des assets intégrés d'Unity, des packages ou d'emplacements externes. Les assets intégrés d'Unity ne peuvent pas être conditionnés dans SpriteAtlas, et les assets de packages peuvent causer des problèmes d'import/dépendance.

Architecture critique de V2

ContexteComposantObjectifUtilisation autorisée

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

unity-technologies/2d-pixel-perfect

Sets up, diagnoses, and fixes pixel perfect 2D rendering in Unity projects. Use when working on any retro-style or pixel art 2D game.

unity-technologies/audio-setup-mixers

Scans the scene and audio assets to appropriately route Audio Sources into existing Audio Mixer Groups, classifying each source by what it plays. Use when the user asks about cleaning up mixer assignments, routing audio through a mixer, or which group a sound belongs in. Creating mixers and groups, and setting volumes, are not automated — the skill inventories what exists and asks the user to add anything missing.

unity-technologies/build-live-game

Build and operate a live game using Unity Services. Use when the user needs to implement, connect, or debug backend-driven features — battle passes, achievements, player progression, cloud saves, leaderboards, matchmaking, virtual economies, server-authoritative logic, anti-cheat, player accounts and authentication, remote configuration, feature flags, A/B testing, analytics, or cloud resource deployment. Triggers on live-ops, live service, backend, server authority, cloud code, cloud save, remote config, player data, retention, monetization loop, season pass, ranking, multiplayer sessions, lobbies, or any Unity Services integration.

unity-technologies/generate-editor-search-query

Generates Unity Search / Quick Search queries and opens the Unity Search window for read-only Unity Editor asset or scene-object lookup requests. Always use when the user asks to find, search, show, locate, filter, look up, query, or list concrete assets or scene objects in the current project or scene, even if Unity Search is not named. Covers materials, textures, prefabs, scenes, scripts, shaders, GameObjects, components, Lights, Cameras, UI objects, labels, paths, references, selected or named assets, and asset types. Also use when the user explicitly mentions Unity Search, Quick Search, Search window, open Search, or asks what Unity Search query to use. Do not use for general project overview, project structure, folder-purpose summaries, gameplay/system explanations, how-to programming questions, web search, repository text search, build logs, package installation, menu or settings search, modifying results, or non-Unity filesystem search unless the user explicitly asks to use Unity Search.

unity-technologies/implement-in-app-purchases

Implement, configure, and debug Unity In-App Purchases (IAP) — store connection, product catalog, consumable/non-consumable/subscription purchases, two-step pending-confirm flow, receipt validation, entitlement checking, restore transactions, Apple extensions (promotional purchases, Ask-to-Buy, code redemption), and Google Play extensions (subscription upgrade/downgrade), D2C Capabilities(direct to customer), 3rd party payment provider (Stripe/Coda) via Unity IAP/Unity Cloud. Use when the user needs to add, modify, debug, or migrate from native Android/iOS billing, 3rd party packages(RevenueCat/Adapty/Essential Kit/Unipay supported) to IAP. Triggers on microtransactions (MTX), monetization, real-money purchases, store purchases, buying items, support D2C, purchase via Stripe/Coda, migrate from native billing(Google's BillingClient or Apple's StoreKit/SKPaymentQueue/SKProduct)/RevenueCat/Adapty/EssentialKit/Unipay.

unity-technologies/initialize-ai-navigation

Sets up and configures the Unity AI Navigation system — NavMesh surfaces, NavMesh agents, obstacles, links, modifiers, areas and costs. Use when creating walkable navigation meshes, adding pathfinding agents, setting up patrol routes, configuring obstacle avoidance and carving, connecting separate NavMeshes with links, coupling navigation with animation, or troubleshooting navigation issues.

unity-technologies/levelplay-unity-integration

Integrates the LevelPlay Mediation SDK via the Ads Mediation UPM package. Use when a developer asks about adding ads to a Unity game, implementing rewarded, interstitial, or banner ads, setting up ad mediation, configuring ad networks, installing or updating the Ads Mediation package, troubleshooting LevelPlay namespace errors, resolving Android gradle or iOS CocoaPods dependency issues for ads, configuring ATT or privacy settings for ad compliance, tracking impression-level revenue (ILRD), initializing the LevelPlay SDK, or setting up ad unit IDs. Also use when a developer wants to monetize their Unity game with ads, asks how to get started with LevelPlay, ads, or mediation, or needs help with any part of the LevelPlay integration workflow including platform-specific setup for iOS or Android. Also use when upgrading the LevelPlay or IronSource SDK version, migrating from deprecated IronSource.Agent APIs, or migrating a game from Unity Ads to LevelPlay.

unity-technologies/localization

Sets up and configures Unity Localization, including locales, String/Asset Tables, CJK font support, and Addressables workflows. Use when the user wants to add languages to a project, translate UI text, support Asian (CJK) languages with TMP fonts, or mentions i18n, l10n, multilingual support, or making a game support multiple languages.

unity-technologies/migrate-birp-to-urp

Plans, executes, and troubleshoots Unity projects moving from the Built-in Render Pipeline (BiRP/BIRP/Built-in RP) to the Universal Render Pipeline (URP). Use when the user asks to upgrade, convert, switch, or migrate a project, scene, material, or shader to URP/Universal Render Pipeline; fix pink or magenta materials after URP; convert Built-in materials/shaders; move a 2D project to URP 2D; review lighting, quality, post-processing, baked lightmaps, or reflection probes after URP; or diagnose visual problems after a render-pipeline migration.

Skills associés