63 lines
1.8 KiB
C#
63 lines
1.8 KiB
C#
using UnityEngine;
|
|
|
|
namespace DarkTonic.MasterAudio
|
|
{
|
|
public static class SpatializerHelper
|
|
{
|
|
private const string OculusSpatializer = "OculusSpatializer";
|
|
|
|
private const string ResonanceAudioSpatializer = "Resonance Audio";
|
|
|
|
private const string SteamAudioSpatializer = "Steam Audio Spatializer";
|
|
|
|
private const string MetaXrSpatializer = "Meta XR Audio";
|
|
|
|
public static bool IsSupportedSpatializer => SelectedSpatializer switch
|
|
{
|
|
"OculusSpatializer" => true,
|
|
"Resonance Audio" => true,
|
|
"Steam Audio Spatializer" => true,
|
|
"Meta XR Audio" => true,
|
|
_ => false,
|
|
};
|
|
|
|
public static bool IsOculusAudioSpatializer => SelectedSpatializer == "OculusSpatializer";
|
|
|
|
public static bool IsResonanceAudioSpatializer => SelectedSpatializer == "Resonance Audio";
|
|
|
|
public static bool IsSteamAudioSpatializer => SelectedSpatializer == "Steam Audio Spatializer";
|
|
|
|
public static bool IsMetaXrSpatializer => SelectedSpatializer == "Meta XR 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 && SteamAudioHelper.SteamAudioOptionExists && MasterAudio.Instance.useSpatializerPostFX)
|
|
{
|
|
source.spatializePostEffects = true;
|
|
}
|
|
}
|
|
|
|
private static void SetSpatializerToggleOnSource(AudioSource source, bool enabled)
|
|
{
|
|
if (enabled)
|
|
{
|
|
enabled = source.spatialBlend != 0f;
|
|
}
|
|
source.spatialize = enabled;
|
|
}
|
|
}
|
|
}
|