Communitygithub.com

unity-technologies/audio-setup-mixers

Escanea la escena y los activos de audio para enrutar apropiadamente las fuentes de audio en los grupos de mezcladores de audio existentes, clasificando cada fuente por lo que reproduce.

¿Qué es audio-setup-mixers?

Este skill automatiza la tediosa tarea de inspeccionar docenas de fuentes de audio en una escena de Unity y clasificarlas por el tipo de sonido que reproducen (por ejemplo, Foley, Diálogo, SFX, Música) para enrutarlas a los grupos de mezcladores de audio existentes. Está diseñado para desarrolladores que utilizan el Editor de Unity y necesitan limpiar asignaciones de mezcladores, enrutar audio a través de un mezclador o determinar a qué grupo pertenece un sonido. El skill no crea mezcladores ni grupos (ya que no existe API pública para ello), sino que inventaría lo que ya existe, propone un enrutamiento basado en nombres de activos de clip de audio y nombres de GameObject, y espera la confirmación del usuario para crear los grupos faltantes. Una vez acordado, asigna cada fuente de audio a su grupo correspondiente mediante una operación de deshacer única. Es compatible con el Editor de Unity en ejecución y requiere el skill `unity-cli` para ejecutar fragmentos de C# a través del comando `eval`. No modifica archivos `.mixer` ni utiliza API no públicas para la creación de grupos.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Configuración del Mezclador de Audio

Enrutar una Fuente de Audio a un grupo de mezclador es una edición de escena que solo un Editor en ejecución puede realizar, por lo que este skill necesita un Editor vivo en el que pueda ejecutar C#. El Paso 0 establece eso antes que cualquier otra cosa.

Qué automatiza este skill y qué te devuelve. Inspeccionar mezcladores y enrutar Fuentes de Audio en grupos es API pública de Unity, y esa es la parte tediosa — revisar docenas de fuentes y clasificarlas por lo que reproducen. Crear un mezclador o un grupo no tiene API pública; solo existe en tipos que Unity no se compromete a mantener estables. Así que este skill no creará grupos a tus espaldas. Inventaría lo que existe, propone el enrutamiento, te pide que agregues cualquier grupo faltante en la ventana Audio Mixer, y luego realiza todo el enrutamiento por sí mismo.

Ese es un límite deliberado, no una brecha que deba solucionarse. No recurras a la reflexión para crear grupos, y no edites manualmente un archivo .mixer — la estructura del mezclador no se puede modificar a ciegas de forma segura.

Paso 0: Confirma que puedes ejecutar C# en el Editor

Cada paso de C# a continuación se ejecuta dentro de un Editor vivo a través de la CLI de Unity. El skill unity-cli se encarga de llevarte allí — instalar la CLI, confirmar un Editor conectado, agregar el paquete com.unity.pipeline del proyecto, distinguir un Editor genuinamente ausente de uno atascado en Modo Seguro, y descubrir el catálogo de comandos del Editor. Síguelo primero; no vuelvas a deducir nada de eso aquí.

Dos cosas que no puede saber por ti:

  • Necesitas eval en particular, no solo un Editor accesible. Confirma que aparezca en el catálogo. Su presencia depende de la versión del paquete Pipeline, no de la CLI, por lo que una instalación saludable puede carecer de él — si falta, dilo y detente.
  • No recurras a editar archivos .mixer manualmente. El enrutamiento del mezclador no se puede modificar a ciegas de forma segura, por lo que un Editor inaccesible es una parada, no una señal para improvisar.

Una vez que eval esté disponible, así es como se ejecuta cada paso de C# a continuación.

Ejecuta C# a través del Editor conectado con el comando eval. Descubre la forma de sus parámetros desde unity command --format json en lugar de asumirla — la forma en línea es unity command eval --code '<snippet>', y algunas versiones de Pipeline también registran eval_file para ejecutar un fragmento desde un archivo. Revisa el catálogo antes de buscar eval_file; con frecuencia está ausente. unity command tiene un tiempo de espera predeterminado de 30 segundos.

Pasando C# a eval

eval compila un bloque de declaraciones, no un archivo. Dos consecuencias, ambas causantes de un error de compilación en lugar de una advertencia:

  • Sin directivas using. El compilador lee using UnityEngine; como una declaración de eliminación de recursos y la rechaza (CS0210).
  • Los tipos deben estar completamente calificados. Un AssetDatabase o Volume simple no se resuelve (CS0246 / CS0103), y un Object simple es ambiguo con object (CS0104).

Cuando un fragmento a continuación está escrito como un archivo — con usings, para facilitar la lectura, o porque está destinado a guardarse en el proyecto — califica los tipos antes de pasarlo a eval.

Paso 1: Verificación previa

Si el usuario no ha solicitado explícitamente Mezcladores de Audio, confirma que desea continuar con la configuración.

Luego, inventaría lo que ya existe con el fragmento de inventario del mezclador en references/api.md, ejecutado a través del Editor como se describe en el Paso 0. Eso te da cada mezclador en el proyecto y los nombres de los grupos en cada uno.

Devuelve una lista plana de grupos, no el árbol padre/hijo. Eso es suficiente para enrutar, y es todo lo que expone la API pública. Si la jerarquía es importante para la conversación, pide al usuario que mire la ventana Audio Mixer y la describa — no recurras a la API de árbol no pública para averiguarlo.

Si el proyecto no tiene ningún mezclador, dilo y detente en lugar de improvisar uno: crear un mezclador no tiene API pública. Pide al usuario que cree uno (Window → Audio → Audio Mixer, luego el + junto a Mixers), y retoma desde aquí una vez que exista.

Paso 2: Encuentra referencias de la escena

Encuentra todos los componentes Audio Source, observa los nombres de sus activos Generator asignados y generaliza una clase o categoría adecuada del nombre del sonido, idealmente algo que ya exista. Ejemplos para nombres de activos de Clip de Audio:

  • "FootStep4_Sound" -> Foley
  • "Dialogue_Female_Scene4" -> Vox/Voice/Dialogue
  • "GunShot" -> SFX
  • "Menu_Theme_Variation" -> Music

Si el activo asignado no es descriptivo o no existe, intenta observar el nombre del GameObject o los nombres de MonoBehaviour adyacentes potenciales. Pide crear un grupo Sin Categorizar si parece difícil o la confianza es baja para clasificar cómo se está utilizando una Fuente de Audio.

Paso 3: Acuerda la lista de grupos y consigue que se creen los grupos faltantes

Presenta la clasificación del Paso 2 como un enrutamiento propuesto — cada Fuente de Audio y el grupo al que planeas enviarlo — y revísalo con el usuario.

ESPERA a que el usuario responda antes de continuar.

Prefiere un grupo existente cuando realmente cubra la categoría, incluso si lo hubieras nombrado de manera diferente. Pero no combines categorías que un ingeniero de mezcla mantendría separadas — Foley es un subconjunto de SFX, no otra palabra para lo mismo, por lo que un disparo no pertenece a un grupo Foley solo porque uno exista. Cuando los grupos existentes solo cubren parcialmente tus categorías, indica cuáles encajan y cuáles necesitan un nuevo grupo, y deja que el usuario decida.

Para categorías sin grupo coincidente, no puedes crear el grupo — no hay API pública para ello. Entrégalo con precisión, nombrando el mezclador y los nombres exactos de los grupos, como se muestra al final de references/api.md. Luego vuelve a ejecutar el fragmento de inventario para confirmar que los grupos existen y verificar su ortografía antes de enrutar. No asumas que el usuario lo hizo, y no asumas que lo deletrearon como lo pediste.

Paso 4: Enruta las Fuentes de Audio

Con la lista de grupos acordada y confirmada como presente, asigna el grupo de salida de cada Fuente de Audio usando el fragmento de enrutamiento en references/api.md. Es API pública en todo momento, y envuelve todo el pase en un solo paso de deshacer para que el usuario pueda revertir todo de una vez.

Clave el mapeo en el identificador por el que clasificaste. El Paso 2 lee primero el nombre del activo del clip y solo recurre al nombre del GameObject, por lo que el mapeo acepta cualquiera de los dos — los dos son identificadores diferentes y usar la clave incorrecta omite fuentes.

Tres cosas que informar en lugar de asumir:

  • Cualquier entrada NO SUCH GROUP que devuelva el fragmento. Eso significa que un grupo que esperabas no está en el mezclador — generalmente una diferencia ortográfica. Resuélvelo con el usuario, no omitas la fuente en silencio.
  • Cualquier entrada NOT IN THE MAPPING. Son Fuentes de Audio que tu clasificación omitió. Informar un enrutamiento exitoso mientras las fuentes quedaron sin enrutar silenciosamente es el peor resultado aquí, porque parece un éxito.
  • La escena fue modificada, no el activo del mezclador. El enrutamiento reside en la Fuente de Audio, por lo que solo persiste una vez que la escena se guarda. Informa al usuario, y guarda solo con su acuerdo.

El volumen, los efectos y el cambio de padre están fuera del alcance. Residen en API no pública. Si el usuario lo solicita, di que el enrutamiento está completo y dirígelo a la ventana Audio Mixer para la mezcla en sí.

Referencias

Ver 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.

Skills relacionados