Communitygithub.com

unity-technologies/audio-setup-mixers

Escaneia a cena e os assets de áudio para rotear adequadamente as Fontes de Áudio para os Grupos de Mixer de Áudio existentes, classificando cada fonte pelo que ela reproduz.

O que é audio-setup-mixers?

Esta skill para Unity automatiza o processo tedioso de inspecionar dezenas de Fontes de Áudio em uma cena e classificá-las por tipo de som (ex: Foley, Voz, SFX, Música), roteando cada uma para o Grupo de Mixer de Áudio apropriado já existente no projeto. Ela se integra perfeitamente ao Unity CLI, executando snippets C# em um Editor ao vivo por meio do comando `eval`. A skill não cria novos Mixers ou Grupos — pois isso requer APIs não públicas — mas inventaria os existentes, propõe um roteamento, aguarda a confirmação do usuário para criar grupos faltantes e, em seguida, executa todo o roteamento em uma única operação desfazível. Suportada pelas plataformas Unity Editor (via Unity CLI), a skill é ideal para desenvolvedores e designers de áudio que desejam organizar a arquitetura de áudio de forma limpa, sem editar manualmente dezenas de componentes. Ela se baseia em uma documentação clara (SKILL.md) e referências de API que garantem que cada etapa seja segura, reversível e explícita sobre seus limites.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/unity-technologies/skills/tree/main/skills/audio-setup-mixers

Perguntar na sua IA favorita

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

Documentação

Configuração do Mixer de Áudio

Roteamento de uma Fonte de Áudio para um grupo de mixer é uma edição de cena que apenas um Editor em execução pode realizar, portanto esta skill precisa de um Editor ao vivo no qual possa executar C#. O Passo 0 estabelece isso antes de qualquer outra coisa.

O que esta skill automatiza e o que ela devolve para você. Inspecionar mixers e rotear Fontes de Áudio para grupos é inteiramente API pública do Unity, e essa é a parte entediante — percorrer dezenas de fontes e classificá-las pelo que reproduzem. Criar um mixer ou um grupo não tem API pública; existe apenas em tipos que a Unity não se compromete a manter estáveis. Portanto, esta skill não criará grupos ocultamente. Ela inventaria o que existe, propõe o roteamento, pede que você adicione qualquer grupo faltante na janela Audio Mixer e depois realiza todo o roteamento.

Isso é um limite deliberado, não uma lacuna a ser contornada. Não recorra a reflexão para criar grupos e não edite manualmente um arquivo .mixer — a estrutura do mixer não é seguramente editável às cegas.

Passo 0: Confirme que você pode executar C# no Editor

Cada passo C# abaixo é executado dentro de um Editor ao vivo por meio da CLI do Unity. A skill unity-cli é responsável por te levar até lá — instalar a CLI, confirmar um Editor conectado, adicionar o pacote com.unity.pipeline do projeto, distinguir um Editor genuinamente ausente de um travado no Modo de Segurança e descobrir o catálogo de comandos do Editor. Siga-a primeiro; não derive nada disso aqui.

Duas coisas que ela não pode saber por você:

  • Você precisa especificamente de eval, não apenas de um Editor acessível. Confirme que ele aparece no catálogo. Sua presença depende da versão do pacote Pipeline, não da CLI, portanto uma instalação saudável ainda pode não tê-lo — se estiver faltando, informe e pare.
  • Não recorra a editar arquivos .mixer manualmente. Roteamento de mixer não é seguramente editável às cegas, portanto um Editor inacessível é uma parada, não um sinal para improvisar.

Uma vez que eval esteja disponível, é assim que cada passo C# abaixo é executado.

Execute C# através do Editor conectado com o comando eval. Descubra sua forma de parâmetro a partir de unity command --format json em vez de assumir uma — a forma inline é unity command eval --code '<snippet>', e algumas versões do Pipeline também registram eval_file para executar um snippet a partir de um arquivo. Verifique o catálogo antes de usar eval_file; ele frequentemente está ausente. unity command tem como padrão um tempo limite de 30 segundos.

Passando C# para eval

eval compila um bloco de instruções, não um arquivo. Duas consequências, ambas causando um erro de compilação em vez de um aviso:

  • Sem diretivas using. O compilador lê using UnityEngine; como uma instrução de descarte de recurso e a rejeita (CS0210).
  • Os tipos devem ser totalmente qualificados. Um AssetDatabase ou Volume simples não resolve (CS0246 / CS0103), e um Object simples é ambíguo com object (CS0104).

Onde um snippet abaixo é escrito como um arquivo — com usings, por legibilidade, ou porque se destina a ser salvo no projeto — qualifique os tipos antes de passá-lo para eval.

Passo 1: Pré-verificação

Se o usuário não pediu explicitamente por Mixers de Áudio, confirme se ele deseja prosseguir com a configuração.

Em seguida, inventarie o que já existe com o snippet de inventário de mixer em references/api.md, executado através do Editor conforme descrito no Passo 0. Isso fornece cada mixer no projeto e os nomes dos grupos em cada um.

Ele retorna uma lista plana de grupos, não a árvore pai/filho. Isso é suficiente para rotear, e é tudo que a API pública expõe. Se a hierarquia for importante para a conversa, peça ao usuário para olhar a janela Audio Mixer e descrevê-la — não recorra à API de árvore não pública para descobrir.

Se o projeto não tiver nenhum mixer, informe e pare em vez de improvisar um: criar um mixer não tem API pública. Peça ao usuário para criar um (Window → Audio → Audio Mixer, depois no + ao lado de Mixers) e retome daqui quando ele existir.

Passo 2: Encontre referências da cena

Encontre todos os componentes Audio Source, observe os nomes dos Assets de Gerador atribuídos e generalize uma classe ou categoria adequada do nome do som, idealmente algo já existente. Exemplos para nomes de Assets de Clip de Áudio:

  • "FootStep4_Sound" -> Foley
  • "Dialogue_Female_Scene4" -> Voz/Voice/Dialogue
  • "GunShot" -> SFX
  • "Menu_Theme_Variation" -> Música

Se o asset atribuído não for descritivo ou não existir, tente olhar para o nome do GameObject ou possíveis nomes de MonoBehaviour adjacentes. Peça para criar um grupo Não Categorizado se parecer difícil ou se a confiança for baixa em classificar como uma Fonte de Áudio está sendo usada.

Passo 3: Concordem a lista de grupos e crie quaisquer grupos faltantes

Apresente a classificação do Passo 2 como um roteamento proposto — cada Fonte de Áudio e o grupo para o qual você pretende enviá-la — e revise com o usuário.

AGUARDE a resposta do usuário antes de prosseguir.

Prefira um grupo existente quando ele realmente cobrir a categoria, mesmo que você o tivesse nomeado de forma diferente. Mas não colapse categorias que um engenheiro de mixagem manteria separadas — Foley é um subconjunto de SFX, não outra palavra para o mesmo, então um tiro não pertence a um grupo Foley só porque um existe. Quando os grupos existentes cobrem apenas parcialmente suas categorias, diga quais se encaixam e quais precisam de um novo grupo, e deixe o usuário decidir.

Para categorias sem grupo correspondente, você não pode criar o grupo — não há API pública para isso. Entregue precisamente, nomeando o mixer e os nomes exatos dos grupos, conforme mostrado no final de references/api.md. Em seguida, re-execute o snippet de inventário para confirmar que os grupos existem e verificar sua ortografia antes de rotear. Não presuma que o usuário fez isso e não presuma que ele soletrou como você pediu.

Passo 4: Roteie as Fontes de Áudio

Com a lista de grupos definida e confirmada presente, atribua o grupo de saída de cada Fonte de Áudio usando o snippet de roteamento em references/api.md. É API pública em toda parte e envolve toda a passagem em uma única etapa de desfazer, para que o usuário possa reverter tudo de uma vez.

Chaveie o mapeamento pelo identificador que você classificou. O Passo 2 lê primeiro o nome do asset do clipe e só recorre ao nome do GameObject, portanto o mapeamento aceita qualquer um — os dois são identificadores diferentes e chavear pelo errado descarta fontes.

Três coisas para relatar em vez de assumir:

  • Quaisquer entradas NO SUCH GROUP que o snippet retornar. Isso significa que um grupo que você esperava não está no mixer — geralmente uma diferença de ortografia. Resolva com o usuário, não pule silenciosamente a fonte.
  • Quaisquer entradas NOT IN THE MAPPING. Essas são Fontes de Áudio que sua classificação perdeu. Relatar um roteamento bem-sucedido enquanto fontes foram silenciosamente deixadas sem roteamento é o pior resultado aqui, porque parece sucesso.
  • A cena foi modificada, não o asset do mixer. O roteamento vive na Fonte de Áudio, portanto só persiste quando a cena é salva. Informe o usuário e salve apenas com sua concordância.

Volume, efeitos e reorganização de pais estão fora do escopo. Eles vivem em API não pública. Se o usuário pedir por eles, diga que o roteamento está feito e aponte para a janela Audio Mixer para a mixagem em si.

Referências

Veja references/api.md

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/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/manage-sprite-atlas

Manage SpriteAtlas using prebuild pipeline with IPreprocessBuildWithReport (DEFAULT approach). Use it to configure master atlases, variant atlases, texture settings, packing settings, and platform-specific configurations. Use when the user asks about creating sprite atlases, optimizing sprites, configuring atlas settings, adding sprites to atlases, creating variant atlases, implementing automated atlas generation, or runtime sprite atlas access. Always use prebuild approach unless user explicitly requests manual authoring.

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