# DrawTexture3DSlice(Texture, Vector3, FilterMode, bool, Gradient)

> Draws a 3D texture using Slice rendering mode in 3D space.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.5/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static void DrawTexture3DSlice(Texture texture, Vector3 slicePositions, FilterMode filterMode = FilterMode.Bilinear, bool useColorRamp = false, Gradient customColorRamp = null)
```

### Parameters

**** (\[Texture]\(/engine/6000.5/script-reference/unityengine/texture)): The volumetric texture to draw.**** (\[Vector3]\(/engine/6000.5/script-reference/unityengine/vector3)): The positions of the texture sampling planes.**** (\[FilterMode]\(/engine/6000.5/script-reference/unityengine/filtermode)): Sets the texture filtering mode to use.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Enables color ramp visualization.**** (\[Gradient]\(/engine/6000.5/script-reference/unityengine/gradient)): The custom gradient that Unity uses as a color ramp. If this is not specified, Unity uses [Google Turbo color ramp](https://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html).

### Remarks

![3DTextureHandleHeadSlice (DrawTexture3DSlice(Texture, Vector3, FilterMode, bool, Gradient))](/api/media?file=/engine/6000.5/media/images/3DTextureHandleHeadSlice.png)

*Head scan rendered in slice mode with a custom gradient.*

```csharp
using UnityEditor;
using UnityEngine;

[ExecuteInEditMode]
public class Reference : MonoBehaviour
{
    public Texture3D texture;
    public Vector3 slicePositions;
    public FilterMode filterMode;
    public bool useColorRamp;
    public bool useCustomColorRamp;

    // We should initialize this gradient before using it as a custom color ramp
    public Gradient customColorRampGradient;
}

[CanEditMultipleObjects]
[CustomEditor(typeof(Reference))]
public class Handle : Editor
{
    private void OnSceneViewGUI(SceneView sv)
    {
        Object[] objects = targets;
        foreach (var obj in objects)
        {
            Reference reference = obj as Reference;
            if (reference != null && reference.texture != null)
            {
                Handles.matrix = reference.transform.localToWorldMatrix;
                Handles.DrawTexture3DSlice(reference.texture, reference.slicePositions, reference.filterMode,
                    reference.useColorRamp, reference.useCustomColorRamp ? reference.customColorRampGradient : null);
            }
        }
    }

    void OnEnable()
    {
        SceneView.duringSceneGui += OnSceneViewGUI;
    }

    void OnDisable()
    {
        SceneView.duringSceneGui -= OnSceneViewGUI;
    }
}
```

Additional Resources: [Handles.DrawTexture3DSDF](/engine/6000.5/script-reference/unityeditor/handles/drawtexture3dsdf.md), [Handles.DrawTexture3DVolume](/engine/6000.5/script-reference/unityeditor/handles/drawtexture3dvolume.md), [Texture3D](/engine/6000.5/script-reference/unityengine/texture3d.md), [Gradient](/engine/6000.5/script-reference/unityengine/gradient.md).
