public static void CreateComponentIfMissing(Transform t, List <AudioEnvelope> Envelopes)
{
foreach (var env in Envelopes)
{
System.Type c = null;
switch (env.filter)
{
case AudioEnvelope.FilterType.Highpass:
c = typeof(AudioHighPassFilter);
break;
case AudioEnvelope.FilterType.Lowpass:
c = typeof(AudioLowPassFilter);
break;
case AudioEnvelope.FilterType.Pitch:
c = typeof(AudioSource);
break;
case AudioEnvelope.FilterType.Volume:
c = typeof(AudioSource);
break;
}
if (c != null)
{
var components = t.GetComponents(c.GetType());
if (components.Length == 0)
{
t.gameObject.AddComponent(c.GetType());
}
}
}
}