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
evalen 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
.mixermanualmente. 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 leeusing UnityEngine;como una declaración de eliminación de recursos y la rechaza (CS0210). - Los tipos deben estar completamente calificados. Un
AssetDatabaseoVolumesimple no se resuelve (CS0246/CS0103), y unObjectsimple es ambiguo conobject(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 GROUPque 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.