# SortingCriteria

> How to sort objects during rendering.

## Definition

* **Type:** Enum
* **Namespace:** [UnityEngine.Rendering](/engine/6000.0/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
[Flags]
public enum SortingCriteria
```

## Remarks

Control the way Unity sorts objects before drawing them by using and combining these flags.

The basic flags are:

* [SortingLayer](/engine/6000.0/script-reference/unityengine/sortinglayer.md),

* [SortingCriteria.RenderQueue](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/renderqueue.md),

* [SortingCriteria.BackToFront](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/backtofront.md),

* [SortingCriteria.QuantizedFrontToBack](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/quantizedfronttoback.md),

* [SortingCriteria.OptimizeStateChanges](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/optimizestatechanges.md),

* [SortingCriteria.CanvasOrder](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/canvasorder.md).

Multiple flags, when combined, are applied in the above order.

Some commonly-used sorting combinations are provided for convenience. Use [SortingCriteria.CommonOpaque](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/commonopaque.md) for opaque objects. This combination of flags includes optimization for reducing draw state changes and draws roughly front-to-back to reduce drawing over the same pixels many times. Use [SortingCriteria.CommonTransparent](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/commontransparent.md) for transparent objects, which need to be sorted from back to front before being drawn for them all to be visible.

Additional Resources: sorting, [ScriptableRenderContext.DrawRenderers](/engine/6000.0/script-reference/unityengine/rendering/scriptablerendercontext/drawrenderers.md).

## Fields

| Value                                                                                                                 | Description                                      |
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| [BackToFront](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/backtofront.md)                   | Sort objects back to front.                      |
| [CanvasOrder](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/canvasorder.md)                   | Sort renderers taking canvas order into account. |
| [CommonOpaque](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/commonopaque.md)                 | Typical sorting for opaque objects.              |
| [CommonTransparent](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/commontransparent.md)       | Typical sorting for transparencies.              |
| [None](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/none.md)                                 | Do not sort objects.                             |
| [OptimizeStateChanges](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/optimizestatechanges.md) | Sort objects to reduce draw state changes.       |
| [QuantizedFrontToBack](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/quantizedfronttoback.md) | Sort objects in rough front-to-back buckets.     |
| [RendererPriority](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/rendererpriority.md)         | Sorts objects by renderer priority.              |
| [RenderQueue](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/renderqueue.md)                   | Sort by material render queue.                   |
| [SortingLayer](/engine/6000.0/script-reference/unityengine/rendering/sortingcriteria/sortinglayer.md)                 | Sort by renderer sorting layer.                  |
