MaterialEditor.RangeProperty
Declaration
public float RangeProperty(MaterialProperty prop, string label);public float RangeProperty(Rect position, MaterialProperty prop, string label);Параметры
| Параметр | Описание |
|---|---|
| метка | Метка для свойства. |
| Проп | Свойство для редактирования. |
| должность | Положение и размер ползунка диапазона. |
Описание
Нарисовать ползунок диапазона для свойства shader диапазона.
Чтобы создать собственный редактор материала, сначала объявите класс редактора и сохраните его в папке Assets/Editor, а затем укажите имя этого класса в своём шейдере. Например:
CustomEditor "MaterialRangePropertyExample"
Вот пример, показывающий ползунок Range, влияющий на свойство Glossiness шейдера:
using UnityEngine; using UnityEditor;
public class MaterialRangePropertyExample : MaterialEditor { public override void OnInspectorGUI( ) { serializedObject.Update( ); SerializedProperty matShader = serializedObject.FindProperty( "m_Shader" );
if( !isVisible ) return;
Material mat = target as Material; MaterialProperty Glossiness = GetMaterialProperty( new Object[] { mat }, "_Glossiness" );
if( Glossiness == null ) return;
EditorGUI.BeginChangeCheck( );
RangeProperty( Glossiness, "Glossiness" );
if( EditorGUI.EndChangeCheck( ) ) PropertiesChanged( ); } }
Вот аналогичный пример, использующий параметр Rect для расположения и размера ползунка в панели редактора настраиваемых материалов:
using UnityEngine; using UnityEditor;
public class MaterialRangePropertyWithRectExample : MaterialEditor { public override void OnInspectorGUI( ) { serializedObject.Update( ); SerializedProperty matShader = serializedObject.FindProperty( "m_Shader" );
if( !isVisible ) return;
Material mat = target as Material; MaterialProperty Glossiness = GetMaterialProperty( new Object[] { mat }, "_Glossiness" );
if( Glossiness == null ) return;
EditorGUI.BeginChangeCheck( );
RangeProperty( new Rect( 20, 60, 300, 20 ), Glossiness, "Glossiness" );
if( EditorGUI.EndChangeCheck( ) ) PropertiesChanged( ); } }
Вот как выглядит примерная панель редактора:
Образец редактора материалов в Inspector.