# RootOutputInstance

> A ProcessorInstance with extra callbacks intended to allow scheduling different management and compute work over the course of a mix frame. Finally, additional audio can be appended to the final audio output.

## Definition

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

```csharp
public struct RootOutputInstance : IEquatable<RootOutputInstance>
```

## Remarks

Usage of this is generally very low level, and intended to provide integration points for internal or external audio middleware, that share the same input/output resources as the host audio system. Create instances of these using [ControlContext.AllocateRootOutput](/engine/6000.6/script-reference/unityengine/audio/controlcontext/allocaterootoutput.md).

## Methods

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

## Operators

| Operator                                                                                                 | Description                                                                                                                                                                                                                                |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [operator ==](/engine/6000.6/script-reference/unityengine/audio/rootoutputinstance/op-equality.md)       | Checks if two instances are equal.                                                                                                                                                                                                         |
| [ProcessorInstance](/engine/6000.6/script-reference/unityengine/audio/rootoutputinstance/op-implicit.md) | Convert this [RootOutputInstance](/engine/6000.6/script-reference/unityengine/audio/rootoutputinstance.md) to its more general [ProcessorInstance](/engine/6000.6/script-reference/unityengine/audio/processorinstance.md) representation. |
| [operator !=](/engine/6000.6/script-reference/unityengine/audio/rootoutputinstance/op-inequality.md)     | Checks if two instances are not equal.                                                                                                                                                                                                     |

## Interfaces

| Interface                                                                                                                    | Description                                                                                                                                                                                  |
| ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [RootOutputInstance.IControl\<TRealtime>](/engine/6000.6/script-reference/unityengine/audio/rootoutputinstance/icontrol1.md) | The control interface an implementation of a [RootOutputInstance](/engine/6000.6/script-reference/unityengine/audio/rootoutputinstance.md) must implement on a struct to be fully formed.    |
| [RootOutputInstance.IRealtime](/engine/6000.6/script-reference/unityengine/audio/rootoutputinstance/irealtime.md)            | The processing interface an implementation of a [RootOutputInstance](/engine/6000.6/script-reference/unityengine/audio/rootoutputinstance.md) must implement on a struct to be fully formed. |
