Communitygithub.com

unity-technologies/verwalte-spriteatlas

Verwalten von SpriteAtlases mithilfe der Prebuild-Pipeline mit IPreprocessBuildWithReport (Standardansatz). Verwenden Sie es, um Master-Atlanten, Varianten-Atlanten, Textureinstellungen, Packeinstellungen und plattformspezifische Konfigurationen zu konfigurieren.

Was ist verwalte-spriteatlas?

Diese Fähigkeit bietet professionelles, editor-sicheres und prozedurales Wissen zur Skripterstellung von SpriteAtlases in Unity-Projekten. Sie ist für Entwickler konzipiert, die Sprite-Atlanten für die Spieleentwicklung optimieren möchten, und unterstützt sowohl die Erstellung von Master-Atlanten als auch von Varianten-Atlanten, einschließlich Textureinstellungen, Packeinstellungen und plattformspezifischer Konfigurationen. Die V2-Architektur erzwingt eine strikte Trennung zwischen Editor-Authoring und Runtime-Zugriff, wobei `SpriteAtlas` nur Runtime und `SpriteAtlasAsset` nur Editor ist. Der Standardansatz verwendet die Prebuild-Pipeline (`IPreprocessBuildWithReport`), um Atlanten automatisch während des Builds zu generieren oder zu aktualisieren, und vermeidet manuelle Menüeinträge. Die Fähigkeit bietet zwei Liefermechanismen: Built-in Data für sofortiges Laden von Kerninhalten (wie UI-Sprites) und Late-Binding via Addressables für bedarfsgesteuertes Laden von DLCs oder saisonalen Inhalten. Zu den wichtigsten Prinzipien gehören das Überprüfen auf vorhandene Skripte, das Aktivieren des SpritePacker-Modus und die Einschränkung von Sprite-Quellorten auf das Projekt-Assets-Verzeichnis. Die Fähigkeit wird von Claude Code, Cursor, Codex und anderen KI-Agenten unterstützt und versendet über 38 Arbeitsdateien unter `resources/`, um häufige Runtime-Fehler zu vermeiden.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Unity SpriteAtlas V2

Bietet editor-sicheres prozedurales Wissen zur Skripterstellung von Atlanten in Unity-Projekten. V2 erzwingt strikte Trennung zwischen Editor-Authoring und Runtime-Zugriff.

⚠️ Kritisches V2-Prinzip: SpriteAtlas ist nur Runtime. SpriteAtlasAsset ist nur Editor. Mischen Sie niemals Kontexte. Verwenden Sie immer V2.

🚨 KRITISCH: Erforderliche Prüfungen und Benutzereingaben vor der Implementierung

Führen Sie IMMER diese Prüfungen durch und stellen Sie diese Fragen, BEVOR Sie Code generieren:

Lesen Sie die mitgelieferten Ressourcen, bevor Sie Code schreiben (ERFORDERLICH)

Diese Fähigkeit versendet funktionierenden C#-Code unter resources/, und der Atlas-Code, der schiefgeht, ist fast immer Code, der geschrieben wurde, ohne ihn zuerst zu lesen. Öffnen Sie die Dateien für den von Ihnen gewählten Pfad, dann schreiben Sie.

Diesen Pfad nehmenZuerst lesen
Jegliche Atlas-Arbeitresources/authoringvsruntime.cs, references/common-errors.md
Prebuild-Generierung (Standard)resources/spriteatlasprebuildgenerator.cs, resources/enablespritepacking.cs, resources/savespriteatlasasset.cs
Option B, Addressables Late-Bindingresources/buildaddressablespostprocess.cs, resources/spriteatlaslatebinding.cs, resources/handlelatebinding.cs
Alles, das eine ältere API verwenden könnteresources/deprecatedmethods.cs, resources/dontscriptspriteatlasineditor.cs, resources/dontpackinruntimebuilds.cs

resources/ enthält insgesamt 38 Dateien, die benutzerdefinierte Packer, Varianten, Plattformeinstellungen und Runtime-Zugriff abdecken. Durchsuchen Sie das Verzeichnis, wenn Ihre Aufgabe nicht in der obigen Tabelle enthalten ist, anstatt einen Ansatz zu erfinden. Aus dem Gedächtnis auf die API zuzugreifen, anstatt diese zu lesen, ist die häufigste Ursache für einen Atlas, der sauber importiert wird und dann zur Laufzeit nichts tut.

0. Auf vorhandene Skripte prüfen (ERFORDERLICHER ERSTER SCHRITT)

Bevor Sie Code generieren, durchsuchen Sie das Projekt nach vorhandenen SpriteAtlas-Skripten, die von dieser Fähigkeit generiert wurden.

Suchen Sie nach Dateien, die die Kennung enthalten: // [UNITY-SKILL:SPRITEATLAS]

Wenn vorhandene Skripte gefunden werden, fragen Sie den Benutzer IMMER mit folgendem Format:

"Ich habe vorhandene SpriteAtlas-Skripte in Ihrem Projekt gefunden:

Prebuild Generator:

  • Assets/Editor/SpriteAtlas/SpriteAtlasPrebuildGenerator.cs

Addressables Builder:

  • Assets/Editor/SpriteAtlas/BuildAddressablesPostprocess.cs

Runtime Loader:

  • Assets/Scripts/SpriteAtlas/SpriteAtlasLateBinding.cs

Was möchten Sie tun?"

Präsentieren Sie dann die Optionen:

  • Option A: Vorhandene Skripte aktualisieren (Empfohlen, wenn sich die Anforderungen geändert haben)

    • Generiert Skripte an vorhandenen Pfaden neu
    • Behält Dateispeicherorte bei
    • Aktualisiert auf die neueste Version
    • ⚠️ Kann benutzerdefinierte Änderungen überschreiben
  • Option B: Neue Skripte mit anderen Namen erstellen

    • Generiert neben vorhandenen Skripten
    • Ermöglicht mehrere Atlas-Konfigurationen
    • Ursprüngliche Skripte bleiben unverändert
    • Sie müssen neue Namen/Pfade angeben
  • Option C: Abbrechen (vorhandene unverändert lassen)

    • Keine Codegenerierung
    • Keine Änderungen am Projekt
    • Verwenden Sie dies, wenn Sie das aktuelle Setup behalten möchten

Benutzerauswahl-Handling:

  • Wenn A gewählt: An vorhandenen Pfaden neu generieren, Version auf 2.0.1+ erhöhen
  • Wenn B gewählt: Nach neuen Skriptnamen fragen (z. B. "SpriteAtlasPrebuild_Custom.cs"), dann generieren
  • Wenn C gewählt: Sofort stoppen, Benutzer informieren, dass keine Änderungen vorgenommen wurden

1. Liefermechanismus (ERFORDERLICH)

Fragen: "Wie möchten Sie die Sprite-Atlanten ausliefern?"

Option A: Built-in Data (Sofortiges Laden)

  • Atlanten sind im Build enthalten und werden sofort geladen
  • Setzen Sie includeInBuild = true
  • Geeignet für: Kern-UI, Haupt-Gameplay-Sprites, stets benötigte Assets
  • Vorteile: Einfach, keine zusätzlichen Pakete, sofortiger Zugriff
  • Nachteile: Erhöht anfängliche Build-Größe, kann ohne neuen Build nicht aktualisiert werden

Option B: Late-Binding via Addressables (Bedarfsgesteuertes Laden)

  • Atlanten sind NICHT im Build enthalten, werden bei Bedarf über Addressables geladen
  • Setzen Sie includeInBuild = false
  • Addressables-Einträge für jeden Atlas erstellen
  • Addressable-Setup als Prebuild-Schritt hinzufügen
  • 🚨 ERFORDERLICH: Addressables-Inhalt als Build-Schritt erstellen
  • 🚨 ERFORDERLICH: Runtime-Loader-Skript für Late-Binding erstellen
  • Geeignet für: DLC-Inhalte, optionale Funktionen, große Assets, herunterladbare Inhalte
  • Vorteile: Kleinere anfängliche Build-Größe, unabhängig aktualisierbar, bedarfsgesteuertes Laden
  • Nachteile: Erfordert Addressables-Paket, asynchrones Laden, Netzwerkabhängigkeit
AnwendungsfallEmpfohlen
Kern-UI-Sprites, die immer sichtbar sindOption A: Built-in
Tutorial- oder Onboarding-SpritesOption A: Built-in
Level-spezifische Sprites (100+ Level)Option B: Addressables
DLC oder saisonale InhalteOption B: Addressables
Lokalisierte UI-Sprites (mehrere Sprachen)Option B: Addressables
Charakter-Skins oder KosmetikaOption B: Addressables

2. SpritePacker-Modus (ERFORDERLICH)

Aktivieren Sie den Sprite Packer-Modus, bevor Sie Atlanten erstellen, lesen Sie dann die Einstellung zurück und bestätigen Sie, dass sie übernommen wurde. Verwenden Sie den Code in resources/enablespritepacking.cs; er setzt EditorSettings.spritePackerMode und konfiguriert die Packeinstellungen des Importers.

Dies ist der Schritt, der entscheidet, ob der von Ihnen erstellte Atlas echt ist. Disabled ist der Nullwert von SpritePackerMode, daher trägt jedes Projekt, in dem niemand es gesetzt hat, das Packen auf Disabled, und ein Atlas, der erstellt wird, während es Disabled ist, importiert trotzdem, wird trotzdem als Asset angezeigt und sieht trotzdem fertig aus, kann aber nie packen. Unity sagt dies im Inspektor: "Sprite Atlas Packing ist deaktiviert". Nichts anderes im Workflow schlägt fehl, sodass ein so ausgelieferter Atlas als Erfolg gelesen wird. Gehen Sie nicht davon aus, dass ein Projekt bereits konfiguriert ist: Lesen Sie den Wert.

Behandeln Sie also "Ich habe es gesetzt" nicht als erledigt. Nachdem Sie es gesetzt haben, lesen Sie EditorSettings.spritePackerMode zurück, bestätigen Sie, dass es nicht Disabled ist, und melden Sie den tatsächlich gelesenen Wert. Wenn Sie es nicht zurücklesen können, sagen Sie dies, anstatt anzunehmen, dass der Schreibvorgang angekommen ist.

Bearbeiten Sie KEINE Meta-Dateien direkt.

🚨 KRITISCH: Standardansatz ist Prebuild-Generierung

Verwenden Sie IMMER IPreprocessBuildWithReport, um SpriteAtlases während der Build-Pipeline automatisch zu generieren oder zu aktualisieren. Dies ist der STANDARD- und ERFORDERLICHE Ansatz, es sei denn, der Benutzer fordert EXPLIZIT manuelles Authoring an.

❌ KEINE Manuellen Menüeintrag-Skripte erstellen

Erstellen Sie NIEMALS Skripte mit [MenuItem]-Attributen für die Atlas-Generierung, es sei denn, dies wird explizit angefordert. Der Prebuild-Ansatz macht manuelle Klicks überflüssig. Verwenden Sie manuelles Authoring nur für: Handoptimierte Layouts, spezifische Sprite-Anordnungen oder Editor-Vorschau-Anforderungen. Siehe Erweitert: Manuelles Authoring.

🚨 KRITISCH: Einschränkung der Sprite-Quellorte

Fügen Sie Sprites NUR aus dem Assets-Ordner des Projekts hinzu. Fügen Sie NIEMALS Sprites aus Unity-Built-in-Assets, Paketen oder externen Speicherorten hinzu. Unity-Built-in-Assets können nicht in SpriteAtlas gepackt werden, und Paket-Assets können Import-/Abhängigkeitsprobleme verursachen.

Kritische V2-Architektur

KontextKomponenteZweckErlaubte Verwendung

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.

Verwandte Skills