Communitygithub.com

unity-technologies/audio-setup-mixers

Durchsucht die Szene und Audio-Assets, um Audio-Quellen passenden Audio-Mixer-Gruppen zuzuordnen, klassifiziert jede Quelle nach dem, was sie abspielt.

Was ist audio-setup-mixers?

Dieses Skill automatisiert die mühsame Aufgabe, viele Audio-Quellen in einer Unity-Szene zu inspizieren und sie bestehenden Audio-Mixer-Gruppen zuzuordnen. Es klassifiziert jede Quelle anhand des zugewiesenen Audio-Clip-Namens (z. B. Fußschritte → Foley, Dialog → Vox, Schüsse → SFX, Musik → Music) und erstellt einen Vorschlag zur Weiterleitung. Der Skill erstellt **keine** Mixer oder Gruppen selbst, da es dafür keine öffentliche Unity-API gibt – er fordert den Benutzer auf, fehlende Gruppen im Audio-Mixer-Fenster anzulegen, und führt dann die gesamte Zuordnung durch. Er unterstützt Claude Code, Cursor und andere KI-Agenten, die über die `unity-cli` mit einem laufenden Unity-Editor kommunizieren und C#-Snippets über den `eval`-Befehl ausführen. Die gesamte Routing-Logik ist als ein einziger Undo-Schritt verpackt und meldet zuverlässig, wenn eine Gruppe nicht gefunden oder eine Quelle nicht klassifiziert werden konnte.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Audio Mixer Einrichtung

Das Weiterleiten einer Audio-Quelle zu einer Mixer-Gruppe ist eine Szenenbearbeitung, die nur ein laufender Editor vornehmen kann, daher benötigt dieses Skill einen Live-Editor, in dem C# ausgeführt werden kann. Schritt 0 stellt dies sicher, bevor etwas anderes passiert.

Was dieses Skill automatisiert und was es an Sie zurückgibt. Das Inspizieren von Mixern und das Weiterleiten von Audio-Quellen in Gruppen erfolgt vollständig über die öffentliche Unity-API und ist der mühsame Teil – Dutzende Quellen durchzugehen und sie nach dem zu klassifizieren, was sie abspielen. Das Erstellen eines Mixers oder einer Gruppe hat keine öffentliche API; es existiert nur in Typen, deren Stabilität Unity nicht garantiert. Daher wird dieses Skill keine Gruppen hinter Ihrem Rücken erstellen. Es inventarisiert, was existiert, schlägt die Weiterleitung vor, bittet Sie, fehlende Gruppen im Audio-Mixer-Fenster hinzuzufügen, und führt dann die gesamte Weiterleitung selbst durch.

Das ist eine bewusste Einschränkung, keine Lücke, die umgangen werden muss. Verwenden Sie keine Reflection zum Erstellen von Gruppen und bearbeiten Sie keine .mixer-Datei von Hand – die Mixer-Struktur ist nicht sicher blind authorbar.

Schritt 0: Bestätigen, dass Sie C# im Editor ausführen können

Jeder C#-Schritt unten wird in einem Live-Editor über die Unity-CLI ausgeführt. Das unity-cli-Skill ist dafür zuständig, Sie dorthin zu bringen – Installation der CLI, Bestätigung eines verbundenen Editors, Hinzufügen des com.unity.pipeline-Pakets des Projekts, Unterscheiden eines wirklich abwesenden Editors von einem, der im Safe Mode steckt, und Erkennen des Befehlsverzeichnisses des Editors. Folgen Sie ihm zuerst; leiten Sie hier nichts davon neu ab.

Zwei Dinge, die es nicht für Sie wissen kann:

  • Sie benötigen insbesondere eval, nicht nur einen erreichbaren Editor. Bestätigen Sie, dass es im Katalog erscheint. Seine Verfügbarkeit hängt von der Pipeline-Paketversion ab, nicht von der CLI. Eine funktionierende Installation kann es trotzdem vermissen lassen – wenn es fehlt, sagen Sie es und stoppen Sie.
  • Greifen Sie nicht auf das manuelle Bearbeiten von .mixer-Dateien zurück. Das Mixer-Routing ist nicht sicher blind authorbar, daher ist ein nicht erreichbarer Editor ein Stopp, kein Hinweis zum Improvisieren.

Sobald eval verfügbar ist, wird jeder C#-Schritt unten so ausgeführt.

Führen Sie C# über den verbundenen Editor mit dem eval-Befehl aus. Entdecken Sie seine Parameterform aus unity command --format json, anstatt eine anzunehmen – die Inline-Form ist unity command eval --code '<snippet>', und einige Pipeline-Versionen registrieren auch eval_file zum Ausführen eines Snippets aus einer Datei. Überprüfen Sie den Katalog, bevor Sie nach eval_file greifen; es ist häufig nicht vorhanden. unity command hat standardmäßig ein Timeout von 30 Sekunden.

C# an eval übergeben

eval kompiliert einen Anweisungsblock, keine Datei. Zwei Konsequenzen, die beide einen Kompilierungsfehler verursachen, keine Warnung:

  • Keine using-Direktiven. Der Compiler liest using UnityEngine; als eine Ressourcen-Freigabe-Anweisung und lehnt sie ab (CS0210).
  • Typen müssen vollständig qualifiziert sein. Ein bloßes AssetDatabase oder Volume wird nicht aufgelöst (CS0246 / CS0103), und ein bloßes Object ist mehrdeutig mit object (CS0104).

Wo ein Snippet unten als Datei geschrieben ist – mit usings, zur Lesbarkeit oder weil es zum Speichern im Projekt gedacht ist – qualifizieren Sie die Typen, bevor Sie es an eval übergeben.

Schritt 1: Vorab-Check

Wenn der Benutzer nicht explizit nach Audio-Mixern gefragt hat, bestätigen Sie, dass er mit deren Einrichtung fortfahren möchte.

Inventarisieren Sie dann, was bereits mit dem Mixer-Inventarisierungs-Snippet in references/api.md existiert, ausgeführt im Editor wie in Schritt 0 beschrieben. Das liefert Ihnen jeden Mixer im Projekt und die Gruppennamen in jedem.

Es gibt eine flache Liste von Gruppen zurück, keinen Eltern/Kind-Baum. Das reicht zum Weiterleiten aus, und das ist alles, was die öffentliche API offenlegt. Wenn die Hierarchie für das Gespräch wichtig ist, bitten Sie den Benutzer, das Audio-Mixer-Fenster anzusehen und es zu beschreiben – greifen Sie nicht auf die nicht-öffentliche Baum-API zurück, um es herauszufinden.

Wenn das Projekt überhaupt keinen Mixer hat, sagen Sie es und stoppen Sie, anstatt einen zu improvisieren: Das Erstellen eines Mixers hat keine öffentliche API. Bitten Sie den Benutzer, einen zu erstellen (Fenster → Audio → Audio Mixer, dann das + neben Mixern), und machen Sie von hier aus weiter, sobald er existiert.

Schritt 2: Szenenreferenzen finden

Finden Sie alle Audio-Source-Komponenten, sehen Sie sich die zugewiesenen Generator-Asset-Namen an und verallgemeinern Sie eine passende Klasse oder Kategorie des Klangnamens, idealerweise etwas bereits Existierendes. Beispiele für Audio-Clip-Asset-Namen:

  • „FootStep4_Sound" -> Foley
  • „Dialogue_Female_Scene4" -> Vox/Sprache/Dialog
  • „GunShot" -> SFX
  • „Menu_Theme_Variation" -> Musik

Wenn das zugewiesene Asset nicht beschreibend ist oder nicht existiert, versuchen Sie, auf den GameObject-Namen oder mögliche angrenzende MonoBehaviour-Namen zu schauen. Bitten Sie darum, eine Gruppe „Unkategorisiert" zu erstellen, wenn es schwierig erscheint oder die Zuverlässigkeit gering ist, wie eine Audio-Quelle verwendet wird.

Schritt 3: Gruppenliste vereinbaren und fehlende Gruppen erstellen lassen

Präsentieren Sie die Klassifizierung aus Schritt 2 als vorgeschlagene Weiterleitung – jede Audio-Quelle und die Gruppe, an die Sie sie senden möchten – und überarbeiten Sie sie mit dem Benutzer.

WARTEN Sie auf die Antwort des Benutzers, bevor Sie fortfahren.

Bevorzugen Sie eine bestehende Gruppe, wenn sie die Kategorie tatsächlich abdeckt, auch wenn Sie sie anders benannt hätten. Aber kollabieren Sie keine Kategorien, die ein Toningenieur getrennt halten würde – Foley ist eine Untermenge von SFX, nicht ein anderes Wort dafür, daher gehört ein Schuss nicht in eine „Foley"-Gruppe, nur weil eine existiert. Wenn die vorhandenen Gruppen Ihre Kategorien nur teilweise abdecken, sagen Sie, welche passen und welche eine neue Gruppe benötigen, und lassen Sie den Benutzer entscheiden.

Für Kategorien ohne passende Gruppe können Sie die Gruppe nicht erstellen – es gibt keine öffentliche API dafür. Übergeben Sie es präzise, nennen Sie den Mixer und die genauen Gruppennamen, wie am Ende von references/api.md gezeigt. Führen Sie dann das Inventarisierungs-Snippet erneut aus, um zu bestätigen, dass die Gruppen existieren, und überprüfen Sie ihre Schreibweise, bevor Sie weiterleiten. Gehen Sie nicht davon aus, dass der Benutzer es getan hat, und gehen Sie nicht davon aus, dass er es so geschrieben hat, wie Sie es verlangt haben.

Schritt 4: Audio-Quellen weiterleiten

Mit der festgelegten und bestätigten Gruppenliste weisen Sie den Ausgabegruppen jeder Audio-Quelle mithilfe des Routing-Snippets in references/api.md zu. Es ist durchgängig öffentliche API und verpackt den gesamten Durchlauf in einem einzigen Undo-Schritt, sodass der Benutzer alles auf einmal rückgängig machen kann.

Schlüsseln Sie die Zuordnung auf den Bezeichner, nach dem Sie klassifiziert haben. Schritt 2 liest zuerst den Clip-Asset-Namen und fällt nur auf den GameObject-Namen zurück, daher akzeptiert die Zuordnung beides – die beiden sind unterschiedliche Bezeichner, und das Schlüsseln auf den falschen lässt Quellen unter den Tisch fallen.

Drei Dinge, die Sie melden, anstatt anzunehmen:

  • Alle NO SUCH GROUP-Einträge, die das Snippet zurückgibt. Das bedeutet, dass eine erwartete Gruppe nicht im Mixer ist – normalerweise ein Rechtschreibunterschied. Klären Sie es mit dem Benutzer, überspringen Sie die Quelle nicht stillschweigend.
  • Alle NOT IN THE MAPPING-Einträge. Das sind Audio-Quellen, die Ihre Klassifizierung übersehen hat. Ein erfolgreiches Routing zu melden, während Quellen stillschweigend nicht weitergeleitet wurden, ist hier das schlechteste Ergebnis, da es als Erfolg gelesen wird.
  • Die Szene wurde geändert, nicht das Mixer-Asset. Das Routing lebt auf der Audio-Quelle, daher bleibt es nur bestehen, wenn die Szene gespeichert wird. Sagen Sie es dem Benutzer und speichern Sie nur mit seiner Zustimmung.

Lautstärke, Effekte und Neu-Zuordnung von Eltern sind nicht im Umfang enthalten. Diese leben auf nicht-öffentlicher API. Wenn der Benutzer danach fragt, sagen Sie, dass das Routing abgeschlossen ist, und verweisen Sie ihn für den Mix selbst an das Audio-Mixer-Fenster.

Referenzen

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

Verwandte Skills