58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
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<NamedBuildTarget> s_selectedBuildTargets = new()
|
|
{
|
|
NamedBuildTarget.Android,
|
|
NamedBuildTarget.iOS,
|
|
NamedBuildTarget.Standalone,
|
|
};
|
|
|
|
static readonly AudioExtendSettings s_audioExtendSettings = AssetDatabase.LoadAssetAtPath<AudioExtendSettings>(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<string> 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<string> defineList = defineArray.ToList();
|
|
|
|
if (defineList.Contains("AUDIO_MIXING"))
|
|
{
|
|
defineList.Remove("AUDIO_MIXING");
|
|
PlayerSettings.SetScriptingDefineSymbols(buildTarget, defineList.ToArray());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|