using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEditor.Build; namespace OCES.Audio.HandWritten.Editor { public static class MixingHelper { static readonly List s_selectedBuildTargets = new() { NamedBuildTarget.Android, NamedBuildTarget.iOS, NamedBuildTarget.Standalone, }; static readonly AudioExtendSettings s_audioExtendSettings = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("de80878c933394e2da0966a1466fd793")); [MenuItem("Tools/OCES/Audio/Enable Mixing")] public static void EnableMixing() { if (s_audioExtendSettings is not null && s_audioExtendSettings.useAssetBundle) { EditorUtility.DisplayDialog("Mixing", "已启用Asset Bundle。\n对音频文件的调整不会生效。", "好吧"); } foreach (NamedBuildTarget buildTarget in s_selectedBuildTargets) { PlayerSettings.GetScriptingDefineSymbols(buildTarget, out string[] defineArray); List defineList = defineArray.ToList(); if (!defineArray.Contains("AUDIO_MIXING")) { defineList.Add("AUDIO_MIXING"); PlayerSettings.SetScriptingDefineSymbols(buildTarget, defineList.ToArray()); } } } [MenuItem("Tools/OCES/Audio/Disable Mixing")] public static void DisableMixing() { foreach (NamedBuildTarget buildTarget in s_selectedBuildTargets) { PlayerSettings.GetScriptingDefineSymbols(buildTarget, out string[] defineArray); List defineList = defineArray.ToList(); if (defineList.Contains("AUDIO_MIXING")) { defineList.Remove("AUDIO_MIXING"); PlayerSettings.SetScriptingDefineSymbols(buildTarget, defineList.ToArray()); } } } } }