Объявление
public static void DrawTexture3DVolume(Texture texture, float opacity = 1.0f, float qualityModifier = 1.0f, FilterMode filterMode = FilterMode.Bilinear, bool useColorRamp = false, Gradient customColorRamp = null);Параметры
texture | Объемная текстура для рисования. |
opacity | Нелинейный модификатор непрозрачности объема. Используйте это для управления непрозрачностью визуализации. Допустимые значения: 0-1 включительно. Значение 1 полностью непрозрачно, а значение 0 полностью прозрачно. Значение по умолчанию — 1. |
qualityModifier | Устанавливает выборку на количество пикселей текстуры. Более высокие значения приводят к более высокому качеству рендеринга. Значение по умолчанию — 1. |
filterMode | Устанавливает используемый режим фильтрации текстур. |
useColorRamp | Включает визуализацию цветовой шкалы. |
customColorRamp | Пользовательский градиент, который Unity использует в качестве цветовой шкалы. Если это не указано, Unity использует цветовую шкалу Google Turbo. |
Описание
Рисует 3D-текстуру в режиме объемного рендеринга в 3D-пространстве.


using UnityEditor;
using UnityEngine;
[ExecuteInEditMode]
public class Reference : MonoBehaviour
{
public Texture3D texture;
public float alpha = 1;
public float quality = 1;
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.DrawTexture3DVolume(reference.texture, reference.alpha, reference.quality, reference.filterMode,
reference.useColorRamp, reference.useCustomColorRamp ? reference.customColorRampGradient : null);
}
}
}
void OnEnable()
{
SceneView.duringSceneGui += OnSceneViewGUI;
}
void OnDisable()
{
SceneView.duringSceneGui -= OnSceneViewGUI;
}
}
Смотрите так же: Handles.DrawTexture3DSDF, Handles.DrawTexture3DSlice, Texture3D, Gradient.