Files
Ultimate-Fishing-Simulator-…/Assets/Plugins/Assembly-CSharp-firstpass/DarkTonic/MasterAudio/SpatializerHelper.cs
2026-03-04 09:37:33 +08:00

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;
}
}
}