Эта страница содержит информацию об использовании блока CustomEditor
в вашей ShaderLab Язык Unity для определения структуры объектов Shader. Подробнее
См. в Словарь код для назначения пользовательские редакторы.
Использование пользовательских редакторов для отображения типов данных, которые Unity не может отображать с помощью материала по умолчанию. InspectorОкно Unity, отображающее информацию о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и редактировать значения. Дополнительная информация
См. в Словарь или для определения пользовательских элементов управления или проверки данных.
Совместимость конвейера рендеринга
Название функции | Встроенный конвейер рендеринга | Универсальный конвейер рендеринга (URP) | Конвейер рендеринга высокого разрешения (HDRP) | Пользовательская SRP |
---|---|---|---|---|
ShaderLab: CustomEditor block | Да | Да | Да | Да |
Использование блоков CustomEditor
В ShaderLab вы можете назначить пользовательский редактор для всех конвейеров рендеринга. Для этого вы можете поместить блок CustomEditor
внутрь блока Shader
.
Подпись | Функции |
---|---|
CustomEditor “[custom editor class name]” | Unity использует пользовательский редактор, определенный в именованном классе. |
Создание пользовательского класса редактора для объекта шейдера
Чтобы определить пользовательский редактор для шейдерапрограммы, работающей на графическом процессоре. Подробнее
Просмотрите в Словарь активы, которые представляют данный объект Shader, вы создаете скрипт, который наследуется от класса ShaderGUI. Поместите свой сценарий в папку с именем Editor в папке Assets.
Сценарий должен иметь следующий формат:
using UnityEditor;
public class ExampleShaderGUI : ShaderGUI
{
public override void OnGUI (MaterialEditor materialEditor, MaterialProperty[] properties)
{
// Custom code that controls the appearance of the Inspector goes here
base.OnGUI (materialEditor, properties);
}
}
Примеры
В этом примере кода демонстрируется синтаксис для указания пользовательского редактора по умолчанию для объекта шейдера с помощью блока CustomEditor
.
Shader "Examples/UsesCustomEditor"
{
// The Unity Editor uses the class ExampleCustomEditor to configure the Inspector for this shader asset
CustomEditor "ExampleShaderGUI"
SubShader
{
// Code that defines the SubShader goes here.
Pass
{
// Code that defines the Pass goes here.
}
}
}