public static class SoundEffectExtensions
{ public static SoundEffectInstance Play3D(this SoundEffect effect, AudioListener listener, AudioEmitter emitter)
{ return Play3D(effect, listener, emitter, 1f, 0f, false);
}
public static SoundEffectInstance Play3D(this SoundEffect effect, AudioListener listener, AudioEmitter emitter, float volume, float pitch, bool loop)
{ return Play3D(effect, new AudioListener[] { listener }, emitter, volume, pitch, loop); }
public static SoundEffectInstance Play3D(this SoundEffect effect, AudioListener [] listeners, AudioEmitter emitter, float volume, float pitch, bool loop)
{ SoundEffectInstance instance = effect.CreateInstance();
instance.Volume = volume;
instance.Pitch = pitch;
instance.IsLooped = loop;
instance.Apply3D(listeners, emitter);
instance.Play();
return instance;
}
public static SoundEffectInstance Play2D(this SoundEffect effect)
{ return Play2D(effect, 1f, 0f, 0f, false);
}
public static SoundEffectInstance Play2D(this SoundEffect effect, float volume)
{ return Play2D(effect, volume, 0f, 0f, false);
}
public static SoundEffectInstance Play2D(this SoundEffect effect, float volume, float pitch, float pan, bool loop)
{ SoundEffectInstance instance = effect.CreateInstance();
instance.Volume = volume;
instance.Pitch = pitch;
instance.Pan = pan;
instance.IsLooped = loop;
instance.Play();
return instance;
}
}