Communitygithub.com

unity-technologies/audio-setup-mixers

씬과 오디오 에셋을 스캔하여 각 Audio Source가 재생하는 내용에 따라 기존 Audio Mixer Group에 적절히 라우팅합니다. 사용자가 믹서 할당 정리, 믹서를 통한 오디오 라우팅, 또는 특정 사운드가 어떤 그룹에 속하는지 물을 때 사용하세요. 믹서 및 그룹 생성, 볼륨 설정은 자동화되지 않으며, 이 스킬은 기존 항목을 인벤토리하고 사용자에게 누락된 항목을 추가하도록 요청합니다.

audio-setup-mixers란 무엇인가요?

이 스킬은 Unity 에디터 씬 내의 모든 Audio Source를 분석하고, 할당된 클립 또는 게임 오브젝트 이름을 기반으로 사운드 유형(예: Foley, Vox, SFX, Music)을 분류한 후, 기존 Audio Mixer Group에 자동으로 라우팅합니다. 공개 Unity API만 사용하여 믹서와 그룹을 검사하고 라우팅을 수행하며, 믹서나 그룹 생성(비공개 API 필요)은 자동화하지 않고 사용자에게 생성을 요청합니다. 주로 Claude Code와 같은 AI 코딩 도우미에서 작동하며, `unity-cli` 스킬을 통해 연결된 에디터에서 C# 코드를 실행합니다. 전체 프로세스는 사전 조사(Step 1), 씬 참조 분석(Step 2), 사용자와의 그룹 목록 협의(Step 3), 최종 라우팅(Step 4)의 단계로 구성되며, 각 단계마다 사용자 확인을 기다립니다. 스킬은 라우팅이 씬에 적용되므로 저장 전 사용자 동의가 필요하다는 점, 볼륨 및 이펙트 설정은 범위 밖임을 명확히 합니다.

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

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

오디오 믹서 설정

Audio Source를 믹서 그룹에 라우팅하는 것은 실행 중인 에디터에서만 수행할 수 있는 씬 편집이므로, 이 스킬은 C#을 실행할 수 있는 라이브 에디터가 필요합니다. 0단계에서는 그 외의 모든 작업보다 먼저 이를 확인합니다.

이 스킬이 자동화하는 것과 사용자에게 맡기는 것. 믹서 검사 및 Audio Source를 그룹으로 라우팅하는 것은 전적으로 공개 Unity API이며, 지루한 부분(수십 개의 소스를 살펴보고 재생하는 내용에 따라 분류)입니다. 믹서나 그룹을 생성하는 공개 API는 없으며, Unity가 안정적으로 유지하겠다고 약속하지 않은 형식에만 존재합니다. 따라서 이 스킬은 사용자 모르게 그룹을 생성하지 않습니다. 기존 항목을 인벤토리하고, 라우팅을 제안하며, 사용자에게 Audio Mixer 창에서 누락된 그룹을 추가하도록 요청한 다음 모든 라우팅을 직접 수행합니다.

이는 우회해야 할 간격이 아니라 의도적인 한계입니다. 리플렉션을 사용하여 그룹을 생성하거나 .mixer 파일을 수동으로 편집하지 마세요. 믹서 구조는 맹목적으로 작성하기에 안전하지 않습니다.

0단계: 에디터에서 C#을 실행할 수 있는지 확인

아래의 모든 C# 단계는 Unity CLI를 통해 라이브 에디터 내에서 실행됩니다. unity-cli 스킬이 이를 수행하는 방법을 제공합니다 — CLI 설치, 연결된 에디터 확인, 프로젝트의 com.unity.pipeline 패키지 추가, 실제로 없는 에디터와 Safe Mode에 갇힌 에디터 구별, 에디터의 명령 카탈로그 검색. 먼저 따르고, 여기서 다시 파생하지 마세요.

스킬이 사용자를 위해 알 수 없는 두 가지:

  • 특히 eval이 필요합니다. 단지 연결 가능한 에디터만으로는 충분하지 않습니다. 카탈로그에 나타나는지 확인하세요. eval의 존재 여부는 CLI가 아닌 Pipeline 패키지 버전에 따라 달라지므로, 정상적으로 설치된 경우에도 eval이 없을 수 있습니다 — 없다면 말하고 중단하세요.
  • 수동으로 .mixer 파일을 편집하는 것으로 대체하지 마세요. 믹서 라우팅은 맹목적으로 작성하기에 안전하지 않으므로, 연결할 수 없는 에디터는 중단 신호이지 즉흥적으로 대처하라는 신호가 아닙니다.

eval을 사용할 수 있게 되면, 아래 각 C# 단계가 실행됩니다.

eval 명령을 통해 연결된 에디터에서 C#을 실행하세요. unity command --format json에서 매개변수 형태를 알아내고, 가정하지 마세요. 인라인 형식은 unity command eval --code '<snippet>'이며, 일부 Pipeline 버전에서는 파일에서 스니펫을 실행하기 위해 eval_file도 등록합니다. eval_file을 사용하기 전에 카탈로그를 확인하세요. 자주 없습니다. unity command의 기본 제한 시간은 30초입니다.

C#을 eval에 전달하기

eval은 파일이 아닌 명령문 블록을 컴파일합니다. 두 가지 결과가 있으며, 둘 다 경고가 아닌 컴파일 오류를 발생시킵니다:

  • using 지시문 없음. 컴파일러는 using UnityEngine;을 리소스 해제 문으로 읽고 거부합니다(CS0210).
  • 형식은 완전히 한정되어야 함. AssetDatabase 또는 Volume만으로는 확인되지 않으며(CS0246 / CS0103), Object만으로는 object와 모호합니다(CS0104).

아래 스니펫이 가독성을 위해 또는 프로젝트에 저장하기 위한 파일로 작성된 경우(using 포함), eval에 전달하기 전에 형식을 한정하세요.

1단계: 사전 조사

사용자가 Audio Mixer를 명시적으로 요청하지 않은 경우, 설정을 진행할 것인지 확인합니다.

그런 다음 references/api.md의 믹서 인벤토리 스니펫을 사용하여 이미 존재하는 것을 인벤토리하고, 0단계에서 설명한 대로 에디터를 통해 실행합니다. 그러면 프로젝트의 모든 믹서와 각 그룹 이름이 제공됩니다.

부모/자식 트리가 아닌 그룹의 평면 목록을 반환합니다. 라우팅하기에 충분하며, 공개 API가 노출하는 전부입니다. 계층 구조가 대화에 중요하다면 사용자에게 Audio Mixer 창을 보고 설명하도록 요청하고, 비공개 트리 API를 사용하여 알아내지 마세요.

프로젝트에 믹서가 전혀 없는 경우, 말하고 중단하세요. 믹서를 즉흥적으로 만들지 마세요. 믹서 생성에는 공개 API가 없습니다. 사용자에게 믹서를 만들도록 요청하고(Window → Audio → Audio Mixer, 그런 다음 Mixers 옆의 +), 믹서가 존재하면 여기서부터 진행하세요.

2단계: 씬 참조 찾기

모든 Audio Source 컴포넌트를 찾고, 할당된 Generator 에셋 이름을 확인한 후, 사운드 이름에 적합한 클래스 또는 카테고리를 일반화하세요. 이상적으로는 이미 존재하는 것입니다.

Audio Clip 에셋 이름 예시:

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

할당된 에셋이 설명적이지 않거나 없는 경우, GameObject 이름이나 잠재적인 인접 MonoBehaviour 이름을 살펴보세요.

분류가 어렵거나 Audio Source 사용 방식을 분류하는 데 자신감이 낮은 경우, Uncategorized 그룹을 만들도록 요청하세요.

3단계: 그룹 목록에 동의하고 누락된 그룹 생성 요청

2단계의 분류를 제안된 라우팅(각 Audio Source와 보낼 그룹)으로 제시하고 사용자와 수정하세요.

계속 진행하기 전에 사용자의 응답을 기다리세요.

카테고리를 진정으로 포함하는 경우 기존 그룹을 선호하세요. 이름을 다르게 지었을지라도 말입니다. 하지만 믹싱 엔지니어가 분리해야 할 카테고리를 병합하지 마세요. Foley는 SFX의 하위 집합이지 다른 단어가 아니므로, Foley 그룹이 존재한다고 해서 총성이 거기에 속하는 것은 아닙니다. 기존 그룹이 카테고리를 부분적으로만 포함하는 경우, 어떤 것이 맞고 어떤 것이 새 그룹이 필요한지 말하고 사용자가 결정하도록 하세요.

일치하는 그룹이 없는 카테고리의 경우, 그룹을 만들 수 없습니다. 공개 API가 없기 때문입니다. references/api.md 끝에 표시된 대로 믹서 이름과 정확한 그룹 이름을 지정하여 정확히 전달하세요. 그런 다음 인벤토리 스니펫을 다시 실행하여 그룹이 존재하는지 확인하고 철자를 확인하세요. 사용자가 수행했다고 가정하지 말고, 사용자가 요청한 대로 철자를 썼다고 가정하지 마세요.

4단계: Audio Source 라우팅

그룹 목록을 확정하고 존재를 확인한 후, references/api.md의 라우팅 스니펫을 사용하여 각 Audio Source의 출력 그룹을 할당하세요. 전체 과정은 공개 API이며, 단일 취소 단계로 래핑되어 사용자가 모든 작업을 한 번에 되돌릴 수 있습니다.

분류한 식별자를 매핑 키로 사용하세요. 2단계는 먼저 클립 에셋 이름을 읽고 GameObject 이름으로 대체하므로, 매핑은 둘 중 하나를 허용합니다. 두 식별자는 다르며, 잘못된 식별자를 키로 사용하면 소스가 누락됩니다.

다음 세 가지를 가정하지 말고 보고하세요:

  • 스니펫이 반환하는 NO SUCH GROUP 항목. 이는 예상한 그룹이 믹서에 없음을 의미합니다(일반적으로 철자 차이). 사용자와 해결하고, 소스를 조용히 건너뛰지 마세요.
  • NOT IN THE MAPPING 항목. 분류에서 누락된 Audio Source입니다. 소스가 조용히 라우팅되지 않은 상태에서 성공적인 라우팅을 보고하는 것은 최악의 결과입니다. 성공으로 읽히기 때문입니다.
  • 수정된 것은 씬이지 믹서 에셋이 아닙니다. 라우팅은 Audio Source에 저장되므로 씬이 저장된 후에만 유지됩니다. 사용자에게 알리고, 사용자 동의가 있을 때만 저장하세요.

볼륨, 이펙트, 부모 재지정은 범위 밖입니다. 이는 비공개 API에 있습니다. 사용자가 요청하면 라우팅이 완료되었음을 말하고 Audio Mixer 창을 가리켜 믹스 자체를 처리하도록 하세요.

참조

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.

관련 스킬