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

242 lines
4.1 KiB
C#

using UnityEngine;
namespace DarkTonic.MasterAudio
{
public class DynamicGroupVariation : MonoBehaviour
{
[Range(0f, 1f)]
public int probabilityToPlay = 100;
[Range(0f, 10f)]
public int importance = 5;
public bool isUninterruptible;
public bool useLocalization;
public bool useRandomPitch;
public SoundGroupVariation.RandomPitchMode randomPitchMode;
public float randomPitchMin;
public float randomPitchMax;
public bool useRandomVolume;
public SoundGroupVariation.RandomVolumeMode randomVolumeMode;
public float randomVolumeMin;
public float randomVolumeMax;
public int weight = 1;
public string clipAlias;
public MasterAudio.AudioLocation audLocation;
public string resourceFileName;
public bool isExpanded = true;
public bool isChecked = true;
public bool useFades;
public float fadeInTime;
public float fadeOutTime;
public bool useCustomLooping;
public int minCustomLoops = 1;
public int maxCustomLoops = 5;
public bool useIntroSilence;
public float introSilenceMin;
public float introSilenceMax;
public bool useRandomStartTime;
public float randomStartMinPercent;
public float randomStartMaxPercent = 100f;
public float randomEndPercent = 100f;
private AudioDistortionFilter _distFilter;
private AudioEchoFilter _echoFilter;
private AudioHighPassFilter _hpFilter;
private AudioLowPassFilter _lpFilter;
private AudioReverbFilter _reverbFilter;
private AudioChorusFilter _chorusFilter;
private DynamicSoundGroup _parentGroupScript;
private Transform _trans;
private AudioSource _aud;
public AudioDistortionFilter DistortionFilter
{
get
{
if (_distFilter != null)
{
return _distFilter;
}
_distFilter = GetComponent<AudioDistortionFilter>();
return _distFilter;
}
}
public AudioReverbFilter ReverbFilter
{
get
{
if (_reverbFilter != null)
{
return _reverbFilter;
}
_reverbFilter = GetComponent<AudioReverbFilter>();
return _reverbFilter;
}
}
public AudioChorusFilter ChorusFilter
{
get
{
if (_chorusFilter != null)
{
return _chorusFilter;
}
_chorusFilter = GetComponent<AudioChorusFilter>();
return _chorusFilter;
}
}
public AudioEchoFilter EchoFilter
{
get
{
if (_echoFilter != null)
{
return _echoFilter;
}
_echoFilter = GetComponent<AudioEchoFilter>();
return _echoFilter;
}
}
public AudioLowPassFilter LowPassFilter
{
get
{
if (_lpFilter != null)
{
return _lpFilter;
}
_lpFilter = GetComponent<AudioLowPassFilter>();
return _lpFilter;
}
}
public AudioHighPassFilter HighPassFilter
{
get
{
if (_hpFilter != null)
{
return _hpFilter;
}
_hpFilter = GetComponent<AudioHighPassFilter>();
return _hpFilter;
}
}
public DynamicSoundGroup ParentGroup
{
get
{
if (_parentGroupScript == null)
{
_parentGroupScript = Trans.parent.GetComponent<DynamicSoundGroup>();
}
if (_parentGroupScript == null)
{
Debug.LogError("The Group that Dynamic Sound Variation '" + base.name + "' is in does not have a DynamicSoundGroup script in it!");
}
return _parentGroupScript;
}
}
public Transform Trans
{
get
{
if (_trans != null)
{
return _trans;
}
_trans = base.transform;
return _trans;
}
}
public bool HasActiveFXFilter
{
get
{
if (HighPassFilter != null && HighPassFilter.enabled)
{
return true;
}
if (LowPassFilter != null && LowPassFilter.enabled)
{
return true;
}
if (ReverbFilter != null && ReverbFilter.enabled)
{
return true;
}
if (DistortionFilter != null && DistortionFilter.enabled)
{
return true;
}
if (EchoFilter != null && EchoFilter.enabled)
{
return true;
}
if (ChorusFilter != null && ChorusFilter.enabled)
{
return true;
}
return false;
}
}
public AudioSource VarAudio
{
get
{
if (_aud != null)
{
return _aud;
}
_aud = GetComponent<AudioSource>();
return _aud;
}
}
}
}