Communitygithub.com

unity-technologies/gerenciar-sprite-atlas

Gerencie SpriteAtlas usando pipeline de pré-build com IPreprocessBuildWithReport (abordagem PADRÃO). Use para configurar atlas mestre, atlas variantes, configurações de textura, configurações de empacotamento e configurações específicas de plataforma.

O que é gerenciar-sprite-atlas?

Esta skill oferece conhecimento procedural seguro para o editor na criação e gerenciamento de SpriteAtlases em projetos Unity, seguindo rigorosamente a separação entre autoria no editor e acesso em tempo de execução (V2). Ela implementa uma abordagem padrão baseada em `IPreprocessBuildWithReport`, gerando ou atualizando automaticamente os SpriteAtlases durante o pipeline de build, eliminando a necessidade de scripts manuais. A skill suporta duas formas de entrega: embutida (atlases incluídos no build para carregamento imediato) e via Addressables (atlases carregados sob demanda com late-binding, ideal para DLCs ou conteúdo opcional). Antes de gerar código, ela exige a leitura dos recursos fornecidos em `resources/` e verifica scripts existentes no projeto para evitar conflitos ou duplicação. Também configura obrigatoriamente o modo de empacotamento (`SpritePackerMode`) para garantir que os atlases sejam realmente empacotados e funcionem em tempo de execução.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Unity SpriteAtlas V2

Fornece conhecimento procedural seguro para o editor para scripts de atlases em projetos Unity. V2 impõe separação estrita entre autoria no editor e acesso em tempo de execução.

⚠️ Princípio Crítico da V2: SpriteAtlas é apenas para tempo de execução. SpriteAtlasAsset é apenas para o editor. Nunca misture contextos. Sempre use V2.

🚨 CRÍTICO: Verificações e Entradas do Usuário Obrigatórias Antes da Implementação

SEMPRE execute estas verificações e faça estas perguntas ANTES de gerar qualquer código:

Leia os recursos fornecidos antes de escrever código (OBRIGATÓRIO)

Esta skill fornece C# funcional em resources/, e o código de atlas que dá errado é quase sempre código escrito sem lê-lo primeiro. Abra os arquivos para o caminho que você está seguindo e depois escreva.

Seguindo este caminhoLeia primeiro
Qualquer trabalho com atlasresources/authoringvsruntime.cs, references/common-errors.md
Geração via pré-build (o padrão)resources/spriteatlasprebuildgenerator.cs, resources/enablespritepacking.cs, resources/savespriteatlasasset.cs
Opção B, late-binding com Addressablesresources/buildaddressablespostprocess.cs, resources/spriteatlaslatebinding.cs, resources/handlelatebinding.cs
Qualquer coisa que possa usar uma API antigaresources/deprecatedmethods.cs, resources/dontscriptspriteatlasineditor.cs, resources/dontpackinruntimebuilds.cs

resources/ contém 38 arquivos no total, cobrindo empacotadores personalizados, variantes, configurações de plataforma e acesso em tempo de execução. Navegue pelo diretório quando sua tarefa não estiver na tabela acima, em vez de inventar uma abordagem. Recorrer à API da memória em vez de ler esses arquivos é a causa mais comum de um atlas que importa perfeitamente e não faz nada em tempo de execução.

0. Verificar Scripts Existentes (PRIMEIRA ETAPA OBRIGATÓRIA)

ANTES de gerar qualquer código, verifique o projeto em busca de scripts SpriteAtlas existentes gerados por esta skill.

Pesquise arquivos que contenham o identificador: // [UNITY-SKILL:SPRITEATLAS]

Se scripts existentes forem encontrados, SEMPRE pergunte ao usuário com este formato:

"Encontrei scripts SpriteAtlas existentes no seu projeto:

Gerador de Pré-build:

  • Assets/Editor/SpriteAtlas/SpriteAtlasPrebuildGenerator.cs

Construtor Addressables:

  • Assets/Editor/SpriteAtlas/BuildAddressablesPostprocess.cs

Carregador em Tempo de Execução:

  • Assets/Scripts/SpriteAtlas/SpriteAtlasLateBinding.cs

O que você gostaria de fazer?"

Em seguida, apresente as opções:

  • Opção A: Atualizar scripts existentes (Recomendado se os requisitos mudaram)

    • Regenera scripts nos caminhos existentes
    • Preserva os locais dos arquivos
    • Atualiza para a versão mais recente
    • ⚠️ Pode sobrescrever modificações personalizadas
  • Opção B: Criar novos scripts com nomes diferentes

    • Gera junto com os scripts existentes
    • Permite múltiplas configurações de atlas
    • Os scripts originais permanecem inalterados
    • Você precisará especificar novos nomes/caminhos
  • Opção C: Abortar (manter o existente sem alterações)

    • Nenhuma geração de código
    • Nenhuma alteração no projeto
    • Use se quiser manter a configuração atual

Tratamento da Escolha do Usuário:

  • Se A for escolhido: Regenerar nos caminhos existentes, incrementar a versão para 2.0.1+
  • Se B for escolhido: Perguntar por novos nomes de script (ex.: "SpriteAtlasPrebuild_Custom.cs"), depois gerar
  • Se C for escolhido: Parar imediatamente, informar ao usuário que nenhuma alteração foi feita

1. Mecanismo de Entrega (OBRIGATÓRIO)

Pergunte: "Como você deseja entregar os sprite atlases?"

Opção A: Dados Embutidos (Carregamento Imediato)

  • Os atlases são incluídos no build e carregados imediatamente
  • Defina includeInBuild = true
  • Adequado para: UI principal, sprites de gameplay principais, assets sempre necessários
  • Prós: Simples, sem pacotes adicionais, acesso instantâneo
  • Contras: Aumenta o tamanho inicial do build, não pode atualizar sem um novo build

Opção B: Late-Binding via Addressables (Carregamento Sob Demanda)

  • Os atlases NÃO são incluídos no build, carregados sob demanda via Addressables
  • Defina includeInBuild = false
  • Crie entradas Addressables para cada atlas
  • Adicione a configuração do addressable como etapa de pré-build
  • 🚨 OBRIGATÓRIO: Criar script de carregamento late-binding em tempo de execução
  • 🚨 OBRIGATÓRIO: Construir conteúdo Addressables como etapa de build
  • Adequado para: Conteúdo DLC, funcionalidades opcionais, assets grandes, conteúdo baixável
  • Prós: Build inicial menor, pode ser atualizado independentemente, carregamento sob demanda
  • Contras: Requer pacote Addressables, carregamento assíncrono, dependência de rede
Caso de UsoRecomendado
Sprites de UI principal que estão sempre visíveisOpção A: Embutidos
Sprites de tutorial ou integraçãoOpção A: Embutidos
Sprites específicos de nível (100+ níveis)Opção B: Addressables
Conteúdo DLC ou sazonalOpção B: Addressables
Sprites de UI localizados (múltiplos idiomas)Opção B: Addressables
Skins ou cosméticos de personagensOpção B: Addressables

2. Modo SpritePacker (OBRIGATÓRIO)

Ative o modo Sprite Packer antes de criar atlases, depois leia a configuração de volta e confirme que foi aplicada. Use o código em resources/enablespritepacking.cs; ele define EditorSettings.spritePackerMode e configura as configurações de empacotamento do importador.

Este é o passo que decide se o atlas que você produz é real. Disabled é o valor zero de SpritePackerMode, então qualquer projeto onde ninguém definiu carrega empacotamento Disabled, e um atlas criado enquanto está Disabled ainda importa, ainda aparece como um asset e ainda parece finalizado, mas nunca pode empacotar. A Unity diz isso no Inspetor: "O empacotamento do Sprite Atlas está desabilitado". Nada mais no fluxo de trabalho falha, então um atlas enviado desta forma é lido como um sucesso. Não presuma que um projeto já está configurado: leia o valor.

Portanto, não trate "Configurei" como concluído. Depois de defini-lo, leia EditorSettings.spritePackerMode de volta, confirme que não é Disabled e relate o valor que você realmente leu. Se não puder lê-lo de volta, diga isso em vez de presumir que a escrita foi aplicada.

NÃO edite arquivos meta DIRETAMENTE.

🚨 CRÍTICO: A Abordagem Padrão é a Geração via Pré-build

SEMPRE use IPreprocessBuildWithReport para gerar ou atualizar automaticamente SpriteAtlases durante o pipeline de build. Esta é a abordagem PADRÃO e OBRIGATÓRIA, a menos que o usuário SOLICITE EXPLICITAMENTE autoria manual.

❌ NÃO Crie Scripts de Item de Menu Manual

NUNCA crie scripts com atributos [MenuItem] para geração de atlas, a menos que seja explicitamente solicitado. A abordagem de pré-build elimina a necessidade de cliques manuais. Use autoria manual apenas para: Layouts otimizados à mão, arranjos específicos de sprites ou requisitos de pré-visualização no editor. Veja Avançado: Autoria Manual.

🚨 CRÍTICO: Restrição de Localização de Fonte de Sprite

Adicione APENAS sprites da pasta Assets do projeto. NUNCA adicione sprites de assets embutidos da Unity, pacotes ou locais externos. Assets embutidos da Unity não podem ser empacotados em SpriteAtlas, e assets de pacotes podem causar problemas de importação/dependência.

Arquitetura Crítica da V2

ContextoComponentePropósitoUso Permitido
Tempo de ExecuçãoSpriteAtlasCarregar e referenciar atlases em tempo de execuçãoUsar spriteAtlas.GetSprite() e propriedades relacionadas
EditorSpriteAtlasAssetCriar e configurar atlases no editorUsar para gerar via script, salvar como asset e configurar parâmetros

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.

Habilidades Relacionadas