Files
2026-03-04 10:03:45 +08:00

63 lines
1.5 KiB
C#

using UnityEngine;
namespace DarkTonic.MasterAudio
{
public static class SpatializerHelper
{
private const string OculusSpatializer = "OculusSpatializer";
private const string ResonanceAudioSpatializer = "Resonance Audio";
public static bool IsSupportedSpatializer
{
get
{
string selectedSpatializer = SelectedSpatializer;
if (!(selectedSpatializer == "OculusSpatializer"))
{
if (selectedSpatializer == "Resonance Audio")
{
return true;
}
return false;
}
return true;
}
}
public static bool IsOculusAudioSpatializer => SelectedSpatializer == "OculusSpatializer";
public static bool IsResonanceAudioSpatializer => SelectedSpatializer == "Resonance Audio";
public static string SelectedSpatializer => AudioSettings.GetSpatializerPluginName();
public static void TurnOnSpatializerIfEnabled(AudioSource source)
{
if (MasterAudio.SafeInstance == null)
{
SetSpatializerToggleOnSource(source, enabled: false);
return;
}
if (!MasterAudio.Instance.useSpatializer)
{
SetSpatializerToggleOnSource(source, enabled: false);
return;
}
SetSpatializerToggleOnSource(source, enabled: true);
if (ResonanceAudioHelper.ResonanceAudioOptionExists && MasterAudio.Instance.useSpatializerPostFX)
{
source.spatializePostEffects = true;
}
}
private static void SetSpatializerToggleOnSource(AudioSource source, bool enabled)
{
if (enabled)
{
enabled = source.spatialBlend != 0f;
}
source.spatialize = enabled;
}
}
}