# ProcessorInstance

> ProcessorInstance is a handle to the common functionality of a scriptable processor.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine.Audio](/engine/6000.5/script-reference/unityengine/audio.md)
* **Assembly:** UnityEngine.AudioModule
* **Implements:** [IEquatable\<ProcessorInstance>](https://learn.microsoft.com/dotnet/api/system.iequatable-1)

```csharp
public readonly struct ProcessorInstance : IEquatable<ProcessorInstance>
```

## Remarks

This could be a [GeneratorInstance](/engine/6000.5/script-reference/unityengine/audio/generatorinstance.md) etc., but with limited structural API available. Use this together with [ControlContext](/engine/6000.5/script-reference/unityengine/audio/controlcontext.md) to query and send commands to the processor.

## Methods

| Method                                                                                            | Description                                    |
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| [Equals](/engine/6000.5/script-reference/unityengine/audio/processorinstance/equals.md)           | Checks if this instance equals a given object. |
| [GetHashCode](/engine/6000.5/script-reference/unityengine/audio/processorinstance/gethashcode.md) | Retrieves a hash code based on this instance.  |

## Operators

| Operator                                                                                            | Description                            |
| --------------------------------------------------------------------------------------------------- | -------------------------------------- |
| [operator ==](/engine/6000.5/script-reference/unityengine/audio/processorinstance/op-equality.md)   | Checks if two instances are equal.     |
| [operator !=](/engine/6000.5/script-reference/unityengine/audio/processorinstance/op-inequality.md) | Checks if two instances are not equal. |

## Structs

| Struct                                                                                                                            | Description                                                                                                                                                                         |
| --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ProcessorInstance.AvailableData](/engine/6000.5/script-reference/unityengine/audio/processorinstance/availabledata.md)           | A temporary collection of data available for enumeration.                                                                                                                           |
| [ProcessorInstance.CreationParameters](/engine/6000.5/script-reference/unityengine/audio/processorinstance/creationparameters.md) | Additional data and parameters specifying how a [ProcessorInstance](/engine/6000.5/script-reference/unityengine/audio/processorinstance.md) should be created.                      |
| [ProcessorInstance.Message](/engine/6000.5/script-reference/unityengine/audio/processorinstance/message.md)                       | A by-reference wrapper around something sent from [ControlContext.SendMessage](/engine/6000.5/script-reference/unityengine/audio/controlcontext/sendmessage.md).                    |
| [ProcessorInstance.Pipe](/engine/6000.5/script-reference/unityengine/audio/processorinstance/pipe.md)                             | A bi-directional communication system typically between two logical threads.                                                                                                        |
| [ProcessorInstance.UpdatedDataContext](/engine/6000.5/script-reference/unityengine/audio/processorinstance/updateddatacontext.md) | A context giving access to data that is currently available for the [ProcessorInstance](/engine/6000.5/script-reference/unityengine/audio/processorinstance.md) this was passed to. |

## Enums

| Enum                                                                                                                    | Description                                                                                                                                                                                                                             |
| ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ProcessorInstance.Response](/engine/6000.5/script-reference/unityengine/audio/processorinstance/response.md)           | A return value from [ProcessorInstance.IControl\<TRealtime>.OnMessage](/engine/6000.5/script-reference/unityengine/audio/processorinstance/icontrol1/onmessage.md) that lets the message sender know if the message was handled or not. |
| [ProcessorInstance.UpdateSetting](/engine/6000.5/script-reference/unityengine/audio/processorinstance/updatesetting.md) | Settings controlling how a [ProcessorInstance](/engine/6000.5/script-reference/unityengine/audio/processorinstance.md) is updated over the course of its lifetime.                                                                      |

## Interfaces

| Interface                                                                                                                  | Description                                                                                                                                           |
| -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ProcessorInstance.IControl\<TRealtime>](/engine/6000.5/script-reference/unityengine/audio/processorinstance/icontrol1.md) | Base interface for common functionality of controlling a [ProcessorInstance](/engine/6000.5/script-reference/unityengine/audio/processorinstance.md). |
| [ProcessorInstance.IRealtime](/engine/6000.5/script-reference/unityengine/audio/processorinstance/irealtime.md)            | Base interface for the common processing logic of a [ProcessorInstance](/engine/6000.5/script-reference/unityengine/audio/processorinstance.md).      |
