Unity 6.3
0 онлайн 62 гостей 3 в системе
Вход

ShaderGUI

класс в UnityEditor

Описание

Абстрактный класс, от которого следует наследоваться, чтобы задать собственный GUI для свойств шейдера и расширить предпросмотр материала.

Унаследуйтесь от этого класса, чтобы управлять представлением свойств шейдера. Чтобы шейдер использовал такой пользовательский GUI, укажите в нём свойство 'CustomEditor'. Учтите, что CustomEditor можно применять и к классам, производным от MaterialEditor (см. «Custom Material Editors»). Примечание: с материалами Substance работает только подход ShaderGUI, поэтому именно он рекомендуется для пользовательского интерфейса шейдеров. См. ShaderGUI.OnGUI, ShaderGUI.OnMaterialPreviewGUI, ShaderGUI.OnMaterialPreviewSettingsGUI.

using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Linq;

public class CustomShaderGUI : ShaderGUI { override public void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties) { // render the shader properties using the default GUI base.OnGUI(materialEditor, properties);

// get the current keywords from the material Material targetMat = materialEditor.target as Material; string[] keyWords = targetMat.shaderKeywords;

// see if redify is set, then show a checkbox bool redify = keyWords.Contains("REDIFY_ON"); EditorGUI.BeginChangeCheck(); redify = EditorGUILayout.Toggle("Redify material", redify); if (EditorGUI.EndChangeCheck()) { // if the checkbox is changed, reset the shader keywords var keywords = new List<string> { redify ? "REDIFY_ON" : "REDIFY_OFF" }; targetMat.shaderKeywords = keywords.ToArray(); EditorUtility.SetDirty(targetMat); } } }

Открытые методы

Метод Описание
AssignNewShaderToMaterialЭтот метод вызывается, когда для Материала выбран новый шейдер.
OnClosedЭтот метод вызывается при закрытии ShaderGUI.
OnGUIЧтобы определить пользовательский шейдер GUI, используйте методы materialEditor для отображения элементов управления для массива свойств.
OnMaterialPreviewGUIПереопределить для расширения рендеринга области Preview или полностью заменить предварительный просмотр (не вызывая base.OnMaterialPreviewGUI).
OnMaterialPreviewSettingsGUIПереопределение для расширения функциональности панели инструментов области предварительного просмотра или полная замена панели инструментов, не вызывая base.OnMaterialPreviewSettingsGUI.
ValidateMaterialКогда пользователь загружает Материал с помощью этого ShaderGUI в память или изменяет значение в Inspector, Редактор вызывает этот метод.

Статические методы

Метод Описание
FindPropertyНайти свойства шейдера.