# IAudioEffect

> Factory for instantiating EffectInstance to be used internally or from other scripts.

## Definition

* **Type:** Interface
* **Namespace:** [UnityEngine.Audio](/engine/6000.7/script-reference/unityengine/audio.md)
* **Assembly:** UnityEngine.AudioModule

```csharp
public interface IAudioEffect : EffectInstance.ICapabilities
```

## Remarks

Implement [IAudioEffect](/engine/6000.7/script-reference/unityengine/audio/iaudioeffect.md) on a [MonoBehaviour](/engine/6000.7/script-reference/unityengine/monobehaviour.md) and add the component to the same GameObject as an [AudioSource](/engine/6000.7/script-reference/unityengine/audiosource.md) to process the audio source's signal with the effect. The audio source discovers the component automatically, calls [IAudioEffect.CreateInstance](/engine/6000.7/script-reference/unityengine/audio/iaudioeffect/createinstance.md), and owns the returned [EffectInstance](/engine/6000.7/script-reference/unityengine/audio/effectinstance.md). Use [AudioSource.GetEffectInstance](/engine/6000.7/script-reference/unityengine/audiosource/geteffectinstance.md) to interact with the instance while it is playing.

[IAudioEffect](/engine/6000.7/script-reference/unityengine/audio/iaudioeffect.md)s do not own any created [EffectInstance](/engine/6000.7/script-reference/unityengine/audio/effectinstance.md) instances, and they don't try to store these for scripting.

If you want to serialize a reference to a [IAudioEffect](/engine/6000.7/script-reference/unityengine/audio/iaudioeffect.md), use the [IAudioEffect.Serializable](/engine/6000.7/script-reference/unityengine/audio/iaudioeffect/serializable.md) utility to store/load these references.

Additional Resources: [AudioSource.GetEffectInstance](/engine/6000.7/script-reference/unityengine/audiosource/geteffectinstance.md), [ControlContext.AllocateEffect](/engine/6000.7/script-reference/unityengine/audio/controlcontext/allocateeffect.md)

## Methods

| Method                                                                                             | Description                                                                                                            |
| -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| [CreateInstance](/engine/6000.7/script-reference/unityengine/audio/iaudioeffect/createinstance.md) | Ask this interface to create an [EffectInstance](/engine/6000.7/script-reference/unityengine/audio/effectinstance.md). |

## Structs

| Struct                                                                                                      | Description                                                                                                                                                                                                                                                                                                                                                                                              |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [IAudioEffect.Serializable](/engine/6000.7/script-reference/unityengine/audio/iaudioeffect/serializable.md) | A helper struct that allows you to serialize a reference to any [Object](/engine/6000.7/script-reference/unityengine/object.md), [MonoBehaviour](/engine/6000.7/script-reference/unityengine/monobehaviour.md) or [ScriptableObject](/engine/6000.7/script-reference/unityengine/scriptableobject.md) that implements [IAudioEffect](/engine/6000.7/script-reference/unityengine/audio/iaudioeffect.md). |
